Support SOCKS proxies.

The trickiest part of this change is the SOCKS 5 proxy implemented
to make testing possible. Fortunately the protocol is very easy, and
shows off Okio.

Closes https://github.com/square/okhttp/issues/1009
(and it doesn't make sense for it to; this is only necessary because we're supporting a duplex channel and we don't want it to stall)