Request drains & pausing

Closes #65. Closes #56.

This brings the TCP backend closer to HTTP, as well as implements backend pausing and request drains. 

This doesn't appear to write anything other than this single event. If that's all we need, just make this a long request that doesn't write 200 until everything is drained. Alternatively send more data to the stream.