(PUP-1894) Fix issue with loading EPP from modules

The problem when loading EPP was that the name of the environment was
passed instead of the actual environment (which was expected).
This simply changes this, and adds a test that an epp can be loaded from
a module.
(PUP-2584) Make 404 warning on agent specific and an error.

This changes the general 404 warning issued by the indirection rest
baseclass into being an error if the option :fail_on_404 is passed
as a "query option".

This is then used when asking for a ca certificate, when asking for the
node, when asking for the initial catalog, and when retrieving a catalog
from the master.

The :fail_on_404 will raise an exception, and it is up to the caller to
determine what this means - when retrieving a catalog, there may be
retries etc. By contrast, the request for a ca certificate will fail
immediately on an agent run.

To try this, contact the master with an unknown environment when using
directory environments for the master configuration.

This more specific behavior is wanted because:
* the rest indirection is used for many different things, one of them
being probing through a list of files to use until one is found.
* the use cases where it really matters that master does not respond
with 404 should error out.
Merge pull request #2667 from hlindberg/PUP-1894-epp-in-modules

(PUP-1894) Fix issue with loading EPP from modules
Merge pull request #2669 from jpartlow/issue/master/pup-2584-make-404-warning-specific-and-an-error

(PUP-2584) Make 404 warning on agent specific and an error.
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-2584) Make 404 warning on agent specific and an error.
  (PUP-1894) Fix issue with loading EPP from modules

Conflicts:
	lib/puppet/configurer.rb

Resolved, merging in stable's :fail_on_404 option into the node
indirection request, and keeping master's changes to set a remote env in
the node in the likely case that locally there is no matching directory
env.
Merge branch 'master' of https://github.com/puppetlabs/puppet