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 will result in at least a double header write (if not more). You'll have to use a channel to send the error(s) to the request handler.