(PUP-4636) Fix problem with environment.conf parser=future
Before this, when the compiler was instantiated from an environment that
was configured to use parser=current, the initialization of the context
for compilation would do this for parser=current. This led to not having
loaded the ruby code for Puppet::Pops::Loaders, and because of this, the
first function call made in a puppet manifest would fail.
This fixes the problem by making the compiler check if the environment
it is going to *set* as the current environment has parser=future set
(instead of checking in the current environment).
This also moves the requirement to load the ruby logic to the loading of
'puppet/pops' since the loaders since quite some time back are lazilily
initialized.