(MODULES-1174) Puppet 3.7 compatibility

 - Puppet 3.7 refactored underlying Win32 API code by changing gems and
   refactoring classes.  The windows-pr gem was removed which provides
   a number of methods and constants through mixins to the
   Puppet::Util::Windows::Security class.  A number of global constants
   are also defined in the namespaces ::Windows::File and
   ::Windows::Security.
 - Furthermore, some methods that used to be defined on
   Puppet::Util::Windows::Security are now in Puppet::Util::Windows::SID
 - Restructure the code to prefer Puppet 3.7 locations with a graceful
   fallback solution to 3.6.x with old gems, etc.
Oh yeah.. we have three cases here

* < 3.6
* > 3.7
* in between