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.
If I'm reading the code correctly, `originalUri` could be turned into a local variable since it's not used outside the constructor.