(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) 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
Merge branch 'master' into puppet-4

* master:
  (maint) Test a different cert for extensions
  (PUP-2385) FFI Puppet::Util::Windows::File
  (PUP-2385) Puppet::Util::Windows::File refactor