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
search prerelease gems for subcommands

- otherwise we can't test knife gem rc releases
Handle sections without text parameters

 * Allows interop with gems that throw custom exceptions without string messages.
Specs for CHEF-3297. TDD rules.
New property :excluded_members for group resource and required common code around it.
OC-10380: skip checksumming for no-content files
OC-10380: add polymorphism
Handle :excluded_members in dscl provider.
spec tests for checksum

- plus stubbing of things that weren't stubed
- and changing stub! to stub
Support :excluded members in gpasswd provider.
Fix the error message in the conflicting user add/remove in group resource.
Support :excluded_members in windows group provider.
Better root checks and better naming for group account in functional group tests.
Merge pull request #1124 from opscode/group-core-and-macos

Core Group Provider + Dscl / Windows / Ubuntu providers changes for CHEF-3297
ruby-shadow supports darwin+freebsd now

- comment in https://tickets.opscode.com/browse/CHEF-4402
Support for excluded_members property in Suse, Groupadd Gpasswd providers. Required unsupported error messages in Usermod provider.
Fix unit tests on group providers.

Note that one unit test case is removed for windows. The reason is that now we are guarding against adding existing members therefore we don't need to have the need to call set_members if add_members fails.
excluded_members support for groupmod provider.
exluded_members support in pw group provider.