Request drains & pausing

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

Does it make more sense to return a channel here? (perhaps in a wrapper to allow closing the stream)