Request drains

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

How do we do this? I don't see any other piece of the controller connecting to other routers than the main one.