extract HTTP logic from Raca::Container into a new Raca::HttpClient class

* This is intended to reduce the duplication of HTTP logic across the
  project. Subsequent commits will update other classes
  (Raca::Containers, Raca::Server, etc) to use the new HttpClient code
* I've left the specs for Raca::Container using WebMock for now. The
  diff was long enough as it was. Eventually I'll update the HttpClient
  specs to use webmock and the Raca::Container specs to just stub
  HttpClient
update Raca::Containers to make HTTP requests via the Raca::HttpClient class

* reduces the duplicated HTTP logic acorss the codebase
* I've left the specs for Raca::Containers using WebMock for now. The
  diff was long enough as it was. Eventually I'll update the HttpClient
  specs to use webmock and the Raca::Containers specs to just stub
  HttpClient
update Raca::Servers to make HTTP requests via the Raca::HttpClient class

* reduces the duplicated HTTP logic acorss the codebase
* I've left the specs for Raca::Servers using WebMock for now. The
  diff was long enough as it was. Eventually I'll update the HttpClient
  specs to use webmock and the Raca::Servers specs to just stub
  HttpClient
update Raca::Server to make HTTP requests via the Raca::HttpClient class

* reduces the duplicated HTTP logic acorss the codebase
* I've left the specs for Raca::Server using WebMock for now. The
  diff was long enough as it was. Eventually I'll update the HttpClient
  specs to use webmock and the Raca::Server specs to just stub
  HttpClient
convert most webmock specs for Raca::Container into standard mocks

* Raca::Container now interacts with a Raca::HttpClient instance. How
  the HttpClient decides to send the message over the wire is an
  implementation detail so we don't want to test it. We can just mock
  out HttpClient and ensure it receives the correct messages
* Eventually, the only specs using WebMock will be the HttpClient specs
add initial specs for Raca::HttpClient

* which exposed a problem with bodies on POST requests that has been
  fixed
HttpClient is responsible for retrying after a 401, so move the spec there
asserting the value of a constant is low value
move some HTTP related specs from Container to HttpClient

* they're really testing the internals of HttpClient, so that's where
  they belong
typo in comments
add a comment to Raca::Account explaining why it doesn't use HttpClient for HTTP requests
convert most webmock specs for Raca::Containers into standard mocks

* Raca::Containers now interacts with a Raca::HttpClient instance. How
  the HttpClient decides to send the message over the wire is an
  implementation detail so we don't want to test it. We can just mock
  out HttpClient and ensure it receives the correct messages
* Eventually, the only specs using WebMock will be the HttpClient specs
convert most webmock specs for Raca::Servers into standard mocks

* Raca::Servers now interacts with a Raca::HttpClient instance. How
  the HttpClient decides to send the message over the wire is an
  implementation detail so we don't want to test it. We can just mock
  out HttpClient and ensure it receives the correct messages
* Eventually, the only specs using WebMock will be the HttpClient specs
convert webmock specs for Raca::Server into standard mocks

* Raca::Server now interacts with a Raca::HttpClient instance. How
  the HttpClient decides to send the message over the wire is an
  implementation detail so we don't want to test it. We can just mock
  out HttpClient and ensure it receives the correct messages
update docs
Merge branch 'http-client'