search prerelease gems for subcommands

- otherwise we can't test knife gem rc releases
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.
CHEF-4777: add include_recipes to recipes node attr
Backport URI::Generic#hostname to Ruby 1.9.2 and older

Documentation for URI::Generic#host in Ruby 2.0.0 explains:

    Since IPv6 addresses are wrapped by brackets in URIs, this method
    returns IPv6 addresses wrapped by brackets. This form is not appropriate
    to pass socket methods such as TCPSocket.open. If unwrapped host names
    are required, use “hostname” method.

Therefore the best way to support IPv6 URIs is to replace calls to
URI::Generic#host with URI::Generic#hostname. The #hostname method is
added in Ruby 1.9.3 so we need to backport it for older ruby versions.
If a resource is sensitive, it’s redacted from logs.