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.
CHEF-4643 Add cookbook versions to chef-client INFO and DEBUG logs
obvious fix
Update to allow boolean and numeric attributes
fix for checking choice array correctly.
update tests and add new tests for limiting attribute types
Create a method to get IO for live stream.
in Chef::Mixin::ShellOut
default to IPS packages on Solaris 5.11+

This behavior was correct until 7fa1ea5 flipped the logic.
add tests for solaris package providers
CHEF-4990
CHEF-4962, knife ssh will use a cloud atttribute for port if available.

The Azure cloud can have multiple nodes behind a single ip/fqdn
with different ssh ports for each. knife ssh should be able to
run on a search of nodes and use the correct ssh port for each.
Change ssh port attribute to use cloud, reorder priority.
Refactor node search for knife ssh.
ensure Chef::REST does not modify options in-place
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
Logic proposal for --force flag to delete the validators during client bulk delete.
Specs for --delete-validators options.
Convert --force option of knife client delete to --delete-validators to be consistent with knife client bulk delete.