(PUP-2781) Generate correct dependency expressions for new modules.

Since Puppet 3.6.0, `puppet module generate` has automatically created
a `metadata.json` file for users, with a sample dependency on
`puppetlabs-stdlib` to help demonstrate the syntax for expressing
dependencies.  Unfortunately, the generated sample used an incorrect
key name (`version_range` vs `version_requirement`), which is less
useful and was introducing other problems with (e.g.) publishing to the
Forge.

This change repairs that mistake.
(maint) Remove resources_spec.rb Facter stubs

 - Facter stubs would actually cause different types to be created
   on Windows that would break tests.
 - Instead of creating stubs that affect a number of tests, carefully
   select the uid in the one test that needs to be particular about max
   UID
Merge pull request #2557 from jasperla/service

(PUP-2578) Adjustments for new OpenBSD service provider
(PUP-2738) Ensure block in user.password_is?

This ensures that a block is given by password_is? when calling
logon_user even though it doesn't need to do anything with it. We went this
route because it made more sense to require a block for this call versus
checking if a block was given in the logon_user method. If you call
logon_user without passing a block you cannot take the next step to later do
something as that user. So it would be a misleading if we allowed it without
requiring a block.
Merge pull request #2782 from ferventcoder/ticket/master/PUP-2738-fixes

(PUP-2738) Ensure block in user.password_is?
Merge pull request #2785 from Iristyle/maint/master/PUP-2454-uid-fix-Windows

(maint) Remove resources_spec.rb Facter stubs
(PUP-839) Add read_word alias to FFI::Pointer
(PUP-839) Add missing &block params to Security
(PUP-839) Remove windows/handle from Security

 - Use shared Use FFI::WIN32.CloseHandle method
 - Make explicit that open_file returns nil, where it was previously
   returning the exit code from CloseHandle
(PUP-839) FFI with_process_token to Process class

 - Refactor with_process_token, moving it into Process class and
   using FFI in the process.  Additionally return nil since there is
   nothing else to return
 - Add deprecation warning for existing with_process_token
(PUP-839) FFI Puppet::Util::Windows::Security vol

 - Remove windows-pr volume class mixin, and implement
   GetVolumeInformaitonW with FFI.  Use closure to capture supported
   value inside of a MemoryPointer release block. Fix minor bug where
   the bitwise check was not comparing against test value, but 0.
 - Requires wide_string from Puppet::Util::Windows::String and
   a constant from Windows::File
(PUP-839) FFI Util::Windows::Security / ::File

 - Remove windows-pr file class mixin for Windows::File and implement
   CreateFileW in Security.
 - Note that open_file overlaps with create_file in file.rb
 - Add FFI GetFileAttributes and SetFileAttributes to File module
 - Move all file attribute related calls out of the Security module and
   into the File module, including get_attributes, add_attributes,
   remove_attributes and set_attributes.  Add corresponding deprecation
   notices.
 - Add a top level FILE alias for Puppet::Util::Windows::File and
   use that to make calls to the APIs / constants in File.
 - File must be included prior to Security to use these constants.
(PUP-839) FFI Windows::Util::Security.set_privilege

 - Don't call LookupPrivilegeValue directly anymore, instead call
   Puppet::Util::Windows::Process.lookup_privilege_value which has
   already been FFI'd.  Use FFI structs for LUID_AND_ATTRIBUTES and
   TOKEN_PRIVILEGES
 - Ensure that set_privilege has a well-defined return value of true
   when it succeeds, or raises otherwise.
 - Remove TOKEN_QUERY privilege since AdjustTokenPrivileges is not
   filling in a buffer with existing LUID information.
(PUP-839) FFI AddAccessAllowedAceEx

 - FFI calls made to AddAccessAllowedAceEx and AddAccessDeniedAceEx and
   properly verify their return codes against FFI::WIN32_FALSE.
   Further, return nil explicitly when not raising.
 - Update call site in set_security_descriptor accordingly, using and
   freeing a FFI::MemoryPointer for the ACL.
(PUP-839) FFI Util::Windows::Security.IsValidAcl

 - Replace existing calls to IsValidAcl with FFI'd versions, and
   properly handle exit codes
(PUP-839) FFI Util::Windows::Security.InitializeAcl
(PUP-839) Remove windows/memory reference

 - Puppet::Util::Windows::Security was only referring to the LocalFree
   Win32 function, so use FFI::Pointer helper read_win32_local_pointer
   to automatically perform memory management on the data returned by
   the GetSecurityInfo API.
(PUP-839) FFI Util::Windows::Security::parse_dacl

 - Previously parse_dacl did some byte manipulation that would have
   likely caused errors in x64.  It also used a GetAce API definition
   that was not FFI'd and therefore would have had incorrect pointer
   lengths on x64.  parse_dacl now accepts an FFI::Pointer as a param
   rather than an address.
 - New FFI structs have been created for ACE, ACE_HEADER and ACL
   that make casting memory addresses much simpler to reason about.
 - An extraneous call to IsValidSid was removed and the code flow was
   refactored to return sooner in unsupported / failure cases.
(PUP-839) Share AccessControlEntry constants

 - Don't rely on the mixin constants from Windows::Security, share
   Puppet::Util::Windows::AccessControlEntry constants
(PUP-839) Windows::Security Constants

 - Move Windows::Security constants directly into
   Puppet::Util::Windows::Security, in preparation for removing
   the gem dependency