First stage of separating Connection from Channel. A Channel manages
multiple Connections, and chooses which Connection to send an RPC on.
In this change, the Channel still creates a Connection for each RPC.
Managing the Connection life-cycle comes in a later change.
Implements the basic server interoperability tests for gRPC compliance.
Compressed tests, TLS, and authentication are not implemented yet, but
basic test cases pass against the C++ gRPC interoperability client.