CHEF-5087: Add a Windows Installer package provider

Adds the framework for a windows package provider, which must determine the
correct provider by examining metadata about the source file, or the source
file itself.

Provides FFI based access to the Windows Installer functions to retrieve
metadata from the MSI files and from the Windows product database.

Combines both of these into an MSI package provider.

Continues to work alongside the windows_package LWRP.
CHEF-5087: Hide win32 if not on windows
Merge pull request #1328 from btm/CHEF-5087

CHEF-5087: Add Windows Installer package provider
CHEF-4957: Mount resource won't work when device is a relative symlink
CHEF-4957: Release doc updates
[CHEF-3610] Set log_level for chef-client when '-VV' is specified in the knife command
CHEF-3610: Doc file updates
CHEF-4203: Honor the chefignore file for knife cookbook test

In the case that a standalone cookbook exists that is using bundler, a large amount of gems can be added to the current directory. This commit reads the chefignore file and avoid having to scan through the ruby files that are in the bundler created gems directory.
Fixing an integration test that was assuming the chefignore would be only located in the cookbooks directory
Fixing indentation
Rename the method to be more descriptive
Use an attr_accessor instead of referencing the instance variable directly
Update the unit tests to use the files names instead of the number of files
Fix Windows 2003 CI issues:

- Make sure that return value is preserved windows_server_2003?
- Disable version_specs on 2003 since the API is not supported.
CHEF-4203: Add documentation updates
[CHEF-3953] ImmutableMash and ImmutableArray should implement to_hash and to_a respectively
  - ImmutableMash now implements a to_hash method.  This recurses through the ImmutableMash and returns a fully mutable Hash
  - ImmutableArray now implements a to_a method.  This recurses through the ImmutableArray and returns a fully mutable Array
  - Unit tests added for both of the above methods
[CHEF-5132] ImmutableCollections #to_a and #to_hash methods fixed and improved
[CHEF-5132] ImmutableCollections #to_a and #to_hash tests changed to use #be_instance_of and cleaned
[CHEF-5132] more tests added for ImmutableCollections #to_a and #to_hash methods
CHEF-5132: documentation updates