Request drains & pausing

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

Well, the router has an in-memory representation of the services and only manipulates the routes in etcd, which is not quite what I wanted. I proposed moving the state into service discovery (`paused`/`active`/`unhealthy`), but I think we decided that it would slow down service discovery?