Parallelized reading and writing

Resolves getlantern/lantern#1593
Can this result in reading write requests from the client faster than we can send them to the server (ie, localhost can presumably send us data faster than we can send it to the downstream server)? Does this mean memory can just build up within the enproxy process? I would worry about things like large file uploads with this approach, but maybe there's a channel that keeps things in lockstep?