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

 JAVA-1510
Moved all classes in com.mongodb.protocol and com.mongodb.protocol.message into com.mongodb.connection,
in preparation for making them all package private.

  JAVA-1510
Refactored Protocol to rely on InternalConnection instead of Connection,
and then removed byte-level messages from Connection.

  JAVA-1510
Now that Operation implementation rely on methods on the Connection interface,
made all Protocol and Message classes package private.

  JAVA-1510
Removed use of GetMore and ServerCursor classes from Connection interface.

  JAVA-1510
Moved WriteRequest and subclasses from com.mongodb.operation to com.mongodb.bulk

  JAVA-1510