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
Add support for FreeBSD next generation package manager
Refactor FreeBSD package providers
Refactor resolving of Freebsd package provider
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