CHEF-4443 - Always save the correct run list

As per Dan's suggestions, use a primary run_list and an override, and
take care to ensure that the correct one is used to save the node.
add run_list setter
Merge remote-tracking branch 'origin/master' into save-right-run-list

Conflicts:
	lib/chef/client.rb
move run_list twiddling into the policy builder
Merge pull request #948 from thommay/chef-4443

CHEF-4443 - Always save the correct run list
Contribution info for CHEF-4443.
CHEF-5041: fix middleware order

- the middleware for the *responses* are applied in reverse order, so
  that the ValidateContentLength middleware must come *AFTER* the
  Decompressor when we initialize them.
CHEF-5041: check for transfer-encoding header

- skip content-length check in the presence of a transfer-encoding
  header
- also adds debugging and some refactoring
CHEF-5100:  reset state for streamed downloads

quick fix to "free" our state from one streamed download request
so that we don't pollute the state of the next streamed request.
CHEF-5100:
  - Enable Content Validation Check for Chef::HTTP::Simple
  - Tidy up debug logs / comments
  - More specs.
Additional debug logs per PR comments.
Changelog info.
Merge pull request #1329 from opscode/lcg/CHEF-5041-content-length

Lcg/chef 5041 content length
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