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
I don't get a flush signal from the source, so it seems weird to synthesize one