(PUP-398) Munge package source on Windows

Adding munge and slashreplace method to windows package provider
to ensure successful installation of packages.  Validation in the
type validate() not possible because we haven't chosen a provider
at that point.  Outputs debug as a means of notifying the user that
the source has been changed.
(PUP-2766) Make newer environment tests run in PE env

Newer directory environment tests were relying on setting commandline
parameters for puppet to point to a temporary config directory.  This
doesn't work well for passenger or PE, so added some utility methods to
backup the established confdir files we are shadowing and ensure they
are replaced.  Also some changes to permissions related to Puppet
running with passenger dropping root permissions.
Merge pull request #2920 from jpartlow/issue/master/pup-2776-directory-env-acceptance-uses-puppetpath

(PUP-2766) Make newer environment tests run in PE env
Merge pull request #2880 from fiddyspence/feature/2945/warning_on_windows_package_source

(PUP-398) Windows package provider source munging and test
(maint) make lmhosts disabled spec msg friendlier
Merge pull request #2921 from Iristyle/maint/windows-lmhosts-disabled-spec-message

(maint) make lmhosts disabled spec msg friendlier
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (maint) make lmhosts disabled spec msg friendlier
  (PUP-2766) Make newer environment tests run in PE env
  (PUP-398) Munge package source on Windows