Support finagle connection pooling

This patch leaves the Client able to be used with a user-provided
ServiceFactory, for configurable hostConnectionLimit, timeouts,
logging, etc.

* Fix Client.close() to close its underlying service rather than the
  service factory (which was a noop).

* Add Client.resetConnection(), which can be used to reset a
  connection back to a state before any statements were prepared.

* Add support for "DISCARD ALL" to Connection and Messages in support
  of resetConnection().

* Move the authentication proxy and errors proxy to prepareConnFactory
  (from prepareServiceFactory) so they're connection-scoped rather
  than factory-scoped.