Request drains

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

Use discoverd to find all of the routers and connect to them. No other API calls require this because they just end up reading and writing data that is shared via etcd.