(MODULES-1247) Support reboot on x86 and x64

 - Puppet 3.7 has changed the gem dependency hierarchy, removing gems
   such as win32-api, windows-api and windows-pr, and updating other
   gems for FFI compatibility.
 - One approach would be to update the gems to be in lockstep with
   Puppet, but that likely prevents the module from working across a
   wider array of Puppet versions.
 - Given how little use of the Win32 API this module makes, instead
   depend on FFI, and create local definitions of the few Win32
   functions needed.  This will effectively redefine some API
   definitions already present in other gems BUT will make the module
   less fragile / susceptible to being broken by a dependency
   hierarchy owned outside the scope of this module.
 - Created local FFI definitions for OpenProcess and WaitForSingleObject
   Moved constant definitions in for WAIT_*, FALSE, SYNCHRONIZE,
   NULL_HANDLE and ERROR_INVALID_PARAMETER.
 - Would have liked to additionally remove sys-admin, win32-dir,
   win32-process, win32-service and win32-taskscheduler gems - but due
   to current Gem dependency resolution, cannot as these gems are
   needed by the Puppet gem.  These gems are not required for this
   module.
(MODULES-1247) CloseHandle on process token

 - Add FFI definition for CloseHandle
 - Ensure that we don't leak handles, by ensuring CloseHandle is called
   against the handle returned by OpenProcess
(MODULES-1247) Update Puppet / PE compatibility

 - Given this module now requires FFI, it's important to verify in our
   MSI packages, which versions shipped with at least 1.9.x.  It appears
   that Puppet Open Source introduced a win32-dir upgrade to 0.4.3 for
   the release of 3.3.0.  Since win32-dir requires FFI, FFI will be
   present in MSIs released from this point in time:
   https://github.com/puppetlabs/puppet-win32-ruby/commits/1.9.3/ruby/lib/ruby/gems/1.9.1/gems/ffi-1.9.0-x86-mingw32/ext/ffi_c/ffi.c
 - Since PE 3.1 ships with Puppet open source 3.3.1, it should also be
   compatible.
 - Note that the Gemfile wasn't updated until Puppet open source 3.3.2,
   but given it's rare to run Puppet from source on Windows, it's
   safe to ignore that particular discrepancy:
 https://github.com/puppetlabs/puppet/commit/11f7c51bd860b86d183120735a7ea6c60e38993f
Merge pull request #44 from Iristyle/ticket/master/modules-1247-reboot-x64

(MODULES-1247) FFI module - allow to work on x86 / x64