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
Remove superfluous node method
Add missing batch / powershell_script resource platform mappings
Handle explicitly thrown exceptions, method name convention violations
Add line breaks to generated script
Fix comment typo
Interpolated boolean return support for powershell_script
CHEF-4553: Guard interpreter attribute to enable custom script guards
Enable inheritance in guards for certain attributes of execute resources
Method name change, ignore translated attributes that are not defined for the resource
Powershell guard functional tests
Remove extraneous character that breaks test cleanup
CHEF-4553: Add spec tests and fix broken examples
Refactor to move inheritance to script and derived resources