(PUP-839) FFI Util::Windows::Security / file

 - Remove windows-pr file class mixin, and implement CreateFileW,
   GetFileAttributes and SetFileAttributes with FFI
 - Note that open_file overlaps with create_file in file.rb
(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.
WIP - Initial FFI definitions