Fixed documentation of return value for BSONObject.put to indicate that it returns the previous value associated with the given key.

  JAVA-1502
Ported some Javadoc changes from master to LazyBSONObject
Replaced all uses of criteria with filter in public APIs
DBCursor's OptionalFinalizer inner class is now static and only contains fields for a Mongo instance and a ServerCursor instance.
Doing this prevents it from holding references to the DBCursor state which it does not actually need, allowing the garbage collector
to reclaim that memory before the finalizer runs.

 JAVA-1519
Excluding new deprecated methods in DBCursor class
Added DBObjectCodec to DBObjectCodecProvider

  JAVA-1503
Split out ValueCodecProvider
Introduce default codec registry to MongoClient

  JAVA-1503
Cleaning up DBObjectCodec and DBObjectCodecProvider and made them public.

   JAVA-1503
Merge pull request #272 from jyemin/j1519

JAVA-1519: DBCursor's OptionalFinalizer inner class is now static ...
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
Updated tests to pass against heap1 storage engine, which does not have a system.indexes collection
Removed use of "with" in Spock then: and expect: clauses because Spock won't treat anything inside them as assertions
Connection no longer needs to implement BufferProvider
Fixed Connection and InternalConnection Javadoc to reflect that both are now thread safe.