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
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.
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.
Update HTTP usage for IPv6 Support

* Fixes Chef::HTTP related code to use URI::Generic#hostname when
  initializing Net::HTTP objects.
* Replace RestClient usage in cookbook uploader with Chef::HTTP::Simple;
  RestClient has the same bug as is fixed in the Chef::HTTP code (and is
  difficult to fix with a monkey patch). See:
  https://github.com/rest-client/rest-client/blob/0919b02cc57447cf42a67e31aad87ab2a6929da3/lib/restclient/request.rb#L150
* Manually verified with chef-zero; chef-zero's test helper code does
  not expose the `:host` parameter so it cannot be used to bind the
  server to ::1. Integration tests will be added once this is solved.
raw_http_request was aliased to send_http_request, which is below the
level of the middleware being applied.

This patch makes raw_http_request behave like request, except the only
middleware that is applied is the AuthN for talking to the chef server
Group spec fixed for CI.