(PUP-2738) Windows utils appropriate return values

 - Puppet::Util::Windows::File.open_symlink was previously returning
   the integer result of CloseHandle, which was undesireable.  Assume
   the token is always used in a block, so return nil from the method.
 - Puppet::Util::Windows::File.readlink was being a bit dangerous, and
   performing a non-local return within a block.  Use a closure instead
   to capture the return value of resolve_symlink, return outside block.
 - Puppet::Util::Windows::Process.open_procss_token had the same issue
   as open_symlink, and has been changed to return nil.
(PUP-2738) Move CloseHandle -> FFI::WIN32

  - CloseHandle is an API used frequently, so move it to a shared
    definition inside FFI::WIN32.  Remove extraneous definitions and
    update call sites.
(PUP-2738) Windows::File use FFI::Pointer helper

 - Remove custom packing of array bytes and replace with use of
   read_wide_string from FFI::Pointer
Merge pull request #2778 from hlindberg/PUP-2758_micro-benchmarks

(PUP-2758) Add micro (and other) benchmarks for future parser/evaluator
Merge branch 'ticket/master/PUP-2738-FFI-Memory-Issues'

* ticket/master/PUP-2738-FFI-Memory-Issues:
  (PUP-2738) Windows::File use FFI::Pointer helper
  (PUP-2738) Move CloseHandle -> FFI::WIN32
  (PUP-2738) Windows utils appropriate return values
  (PUP-2738) Use block form of FFI::MemoryPointer
  (PUP-2738) Puppet::Util::Windows::Process FFI clean
  (PUP-2738) Puppet::Util::Windows::File FFI cleanup
  (PUP-2738) open_symlink should wide_string once
  (PUP-2738) Puppet::Util::Windows::User refactor
  (PUP-2738) FFI from_string_to_wide_string block
  (PUP-2738) FFI::Pointer#read_win32_local_pointer
Merge pull request #2767 from tayzlor/fix/master/PUP-2271

(PUP-2271) Allow yumrepo proxy attribute to be set to _none_
(PUP-2787) Rename Object Type to Any

This renames the top most type in the type system to Any from
the name Object. This is done because the word Object carries
connotations of "Object Oriented Programming" that simply adds confusion
about how puppet works.

This commit is basically a rename refactoring.
Merge pull request #2624 from jaredjennings/feature/master/pup-2511-digest-parser-function

(PUP-2511) Add parser function digest: uses digest_algorithm to hash, not strictly md5
(PUP-2798) Remove warnings for reserved words in 3x regular.

We are issuing too many deprecation warnings for people to keep up.
The migration paths is to use the future parser/evaluator to "future
proof" manifests.

This only changes the warnings for 3x regular. And is basically a
reversal of part of PUP-1027 where these warnings were added).
Merge pull request #2780 from hlindberg/PUP-2787_rename-Object-Any

(PUP-2787) Rename Object Type to Any
(PUP-2578) Adjust spec tests to recent changes:

- Ensure strict ordering of the result of #pkg_scripts_append
- Add test for #in_base?
- Ensure package scripts don't end up with empty flags
(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