(PUP-3268) Pass the actual environment instance in file_content requests

Resource::Catalog.environment() is the String representation of the
environment. We were passing this when the File type content parameter
was set to lookup file contents through the indirectory (via
puppet:///something), and the indirector request would implicitly lookup
an Environment instance based on the String. With legacy environments
removed, however, an agent during pluginsync (or handling any other
remote file content calls during catalog application) is now configured
with directory environments which will raise an error if it cannot find
an actual directory environment matching the environment string.

Since the agent's concept of environment is meant to be entirely
symbolic, it should not be necessary to configure these environments on
the agent. Instead, this commit passes
Resource::Catalog.environment_instance() which is an actual (remote)
Puppet::Node::Environment that the indirector will not need to look up.
(PUP-3268) Provide default module path dir for fallback production

Legacy environments were guaranteed to produce an environment instance
for any random environment name, and supply it with a modulepath, which
had the side effect of ensuring that there would always be a target_dir
for the module_tool.  Directory environments raise an error if the
environment does not exist, but they have an edge case in that the
default production environment is always made available for
bootstrapping. In the case of a call like `puppet config` this allows it
to function even when Puppet is misconfigured. But for module_tool, this
provides an environment for production which has no modulepath, and now
causes an obscure error.

In continuation with the theme that Puppet should continue to just work
in the naive unconfigured case, this commit adds the
'$environmentpath/production' path to fallback production environment
modulepath so that the module_tool will continue to have a target_dir in
this case.
(PUP-3268) Remove legacy environment acceptance tests

Clears out several outdated acceptance tests which were specifically
checking legacy static/dynamic environment scenarios. Also makes a few
adjustments for tests that were using environment settings which are no
longer available in puppet.conf.
(PUP-3268) Test only directory envs in module acceptance

A few of the module tests were environment specific and checking both
legacy and directory environment installations.  This commit simply
removes the attempts to test legacy envs with modules.
(PUP-3268) Adjust two acceptance tests to use directory envs

* loadable_from_modules => use production directory environment instead
  of removed modulepath setting
* func4x_loadable_from_modules => must set environmentpath before
  setting environment with legacy envs removed.
(maint) Search home ~/.ssh for id_rsa-acceptance as well

The acceptance harness was assuming that the id_rsa-acceptance key was
located in ./acceptance. This change just checks ~/.ssh as well.
(maint) Prefer agent -t

For the agent_runs_pluginsync_with_proper_environment test, changing the
agent to run with "-t" includes the --no-daemonize and --ontime flags,
but also ensures --verbose is set which provides better debugging
output.  This also means --detailed-exitcodes is set, but exit code for
thisi operation is expected to be the default 0. The run_agent_on()
Beaker helper is deprecated, and this switches to using on(agent,
puppet()) instead.

Changes to use_enc_environment_for_pluginsync are just to use a single
call of agent.puppet['vardir'] (and thus a single puppet config call on
the agent).
(PUP-3268) Do not attempt to set environmentpath to an empty string

With legacy environments removed, environmentpath is no longer an
optional setting.  This test is checking behavior when environmentpath
is set in the master section of puppet.conf, and was setting
environmentpath in 'main' to the empty string.  This configuration is no
longer possible, and the main section has been removed.
(PUP-3268) Rename require_reparse method

To 'parse_failed' for clarity since that is all that it is checking
now.