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.
WIP/HACKS - FIXME

Changes the structure of HTTP requests so that we create an HTTP client
object and then ask it to make requests. This enables us to use
persistent connections in the future just by customizing a small part of
the HTTP client's behavior (so we could use persistent connections
_just_ for cookbook upload/download, but not for other requests).
HOWEVER:

* The old Chef::REST allows you to make a request to an arbitrary server
  by passing a full URL to get/put/post/delete/etc. Trying to do this
  will probably behave weirdly (wrong) in the current state. I'm pretty
  sure this behavior is relied on _somewhere_ so it needs to be fixed,
  at least for code that uses Chef::REST.