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.