Cleanup deprecation warnings, fix bad mocks
Extract JSON content type handling to a class
Move error message parsing to JSON component
extract HTTP response compression to a class
move decompressor and model inflator to their own files
Extract HTTP authentication to a class
move http authenticator to its own file
Add authentication and GZIP headers back to streaming requests
DRY middleware application
Extract good parts of REST to HTTP base class
Move HTTP components into chef/http
Top-level HTTP object doens't deal with cookies now
remove gzip from HTTPRequest, it's handled by middleware
Extract HTTP cookie handling to middleware
Extract HTTP client from request

This allows us to change the top level HTTP client, e.g., to
Net::HTTP::Persistent
Fix disable gzip for Ruby 2.0

If we've not set an accept encoding by the time we're making a request,
set the accept encoding to request "identity" only. Ruby 2.0 seems to
have some sort of built-in gzip support that we need to explicitly
disable.

Note that prior to this patch, we were _always_ advertising gzip
support, but we would skip decompression if disable_gzip had been set,
which only did the right thing accidentally.
Remove references to authenticator from base HTTP class
HTTP client creates request objects.

Changes the structure of HTTP requests so that we create an HTTP client
object and then ask it to make requests. This allows for easier
customization of the HTTP client object, in particular enabling use to
make use of persistent connections.
Remove leftover methods from subclass
Update test to make order of return values explicit

This seems to be more stable in rspec than giving #and_yield multiple
times.