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.
Bump chef-zero version to at least 1.7.2

* Provides updated IPv6 support in rspec helper code
* Needed for integration tests for CHEF-4616
* https://tickets.opscode.com/browse/CHEF-4616
Add integration test for chef-client IPv6
Patch ruby 2.0 Net::HTTP proxy code for IPv6

Ruby 2.0 changes the way proxying is implemented in Net::HTTP such that
each request will check the URI for "proxy-ness." This check will
generate a URL from the given address and port without wrapping IPv6
addresses in brackets, which triggers an error in the URI library.

Check for this case on startup and monkey patch the offending method if
necessary.
Test cookbook upload/download over IPv6 w/ knife
Force knife to load http monkey patches
Merge branch 'CHEF-4616'

Support using an IPv6 literal in the chef_server_url, including integration
tests and updates to chef-zero to support integration testing IPv6.