RpcServer is a weird mix between blocking I/O and non-blocking I/O right now. We probably want to just make it async, but it's worth waiting for some parts of the rust async ecosystem to mature a bit. In particular we'd want an easy way to shut down an async TCP server (tokio-rs/tokio-proto#135)