(maint) Always use a remote env in the configurer

Before this commit the configurer would track the appropriate
environment to request from the master in the `@environment` variable.
This contained simply the name of the remote environment. The value was
passed through to various indirection requests as the `:environment`
parameter. However, as part of PUP-3244, something changed that caused
the configurer to begin failing when
  * The requested environment did not exist remotely
  * There was a cached catalog locally
  * The cached catalog referenced an environment that did not exist
    locally
This situation caused the indirector requests to contain an environment
name that the Puppet::Indirector::Request code would then try to expand
into a full environment instance by calling
`Puppet.lookup(:environments).get!(env)`. However, since the environment
didn't exist locally the `get!` method raised an error.

This commit changes it so that the configurer always converts the
`@environment`, which is always the environment from the server for the
current run, to `Puppet::Node::Environment.remote`. This stops
`Puppet::Indirector::Request` from trying to load the environment
locally.

I don't know how this ever worked...
Merge pull request #3191 from zaphod42/maint/stable/agent-errors-on-invalid-env-in-cached-catalog

(maint) Always use a remote env in the configurer
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (maint) Always use a remote env in the configurer