(PUP-2385) Puppet::Util::Windows::File refactor

 - Use wide_string as mixin from Puppet::Util::Windows::String
(PUP-2385) FFI Puppet::Util::Windows::File

 - Convert Windows MoveFileEx to FFI
 - No longer need to require 'windows/api'
(maint) Adjust new environment tests to work with PE

The changes to these tests are in two main categories:

1) Changes to file owner and group to use beaker host references so that
correct user/group settings are obtained regardless of whether a FOSS or
PE run is being performed.  Also changes to permissions to be more
permissive for group so that the puppet system user running under
Passenger can access key files.

2) Changes to basemodulepath to ensure that the modules PE master needs
to run under its /opt site module directory are always present.

In addition a few cases had to be exempted on PE altogether, notably
tests which were testing the effect of commandline environment settings.
Since running a PE master with commandline settings would require
modifying it's rack config.ru file, these tests make little sense in
this context.
Merge pull request #2681 from jpartlow/maint/stable/environment-acceptance-fixes-for-pe

(maint) Adjust new environment tests to work with PE
Merge branch 'stable'
(maint) Test a different cert for extensions

The FOSS ssl/certificate_extensions test expects to be able to clear out
the ssl store and start again.  This is not feasible in PE; the solution
is to run the test against a differente certname.  Also leaving temp
dirs in place, because it makes it much easier to review the files that
were used when troubleshooting test failure.
Merge branch 'maint/stable/ssl-cert-ext-acceptance-fix-for-pe' into stable

* maint/stable/ssl-cert-ext-acceptance-fix-for-pe:
  (maint) Test a different cert for extensions
Merge branch 'ticket/master/PUP-2385-FFI-Windows-File'

* ticket/master/PUP-2385-FFI-Windows-File:
  (PUP-2385) FFI Puppet::Util::Windows::File
  (PUP-2385) Puppet::Util::Windows::File refactor
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (maint) Test a different cert for extensions
(packaging) Update PUPPETVERSION to 3.6.1
Merge branch 'stable'

* stable:
  (packaging) Update PUPPETVERSION to 3.6.1