Request drains & pausing

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

I was following the implementation of `GetJobLog`, since it's a similar stream, but yes, I guess a channel would work just as well.