Parallelized reading and writing

Resolves getlantern/lantern#1593
proxyHost is now state that's stored specifically to the reader and requester goroutines.  The request is the first one to find out about it from the proxy, and it uses this channel to communicate it to the reader (who doesn't start reading until he knows this proxyHost).