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
Restore warning for cookbook shadowing
Tidy cookbook upload specs
Add regression test for cookbook overlay warning
Add changelog note about cookbook overlay warning
Merge branch 'restore-shadowing-warning'

Commit cf8af09a40e5fd9fff8d1c481fb98b017545f49b removed warnings related to the
cookbook overlay/shadowing feature, so they have been missing since Chef 11.0.
Add them back.
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
Remove superfluous node method
Add missing batch / powershell_script resource platform mappings