Support Unix sockets via Apache HTTP client

Use the Apache HTTP client, which gives us lower-level control of the HTTP
connection. Plug in a SocketFactory which lets the Apache client speak to
Unix sockets.

NOTE: On Linux, tests will now run against unix:///var/run/docker.sock by
default if no DOCKER_HOST is specified.
I noticed the Javadoc for DefaultHttpClient's base class says it's better to use the same instance for multiple requests. I don't have a sense of how important this is, but we're creating a new instance for every request. Might be nice to pass the same DefaultHttpClient to each RequestTask instance as a constructor argument?

From the docs:
AbstractHttpClient is thread safe. It is recommended that the same instance of this class is reused for multiple request executions. When an instance of DefaultHttpClient is no longer needed and is about to go out of scope the connection manager associated with it must be shut down by calling ClientConnectionManager.shutdown()!