Environmental bisimulations for higher-order languages