JAVA-1510: Added protocol methods to Connection

so that operations no longer have to construct instances of Protocol directly.

Introduced ConnectionFactory interface to make it possible to unit test DefaultServer exception handling