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
Tidy up api client registration specs
Add optional client-side key generation when registering
Fix few typo
Add new config option to DOC_CHANGES
Merge branch 'CHEF-4373'
Fix unit tests to not access /etc/chef/encrypted_data_bag_secret
Merge pull request #1339 from nishigori/fix-few-typo

Fix few typo
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