Ported Add getLimit() and getBatchSize() to DBCursor

JAVA-1530
[Performance] Guided by the profiler, located all places where String.format is used to see if the call needs to be cached, or wrapped inside a conditional; wrapped all calls to logger.warn/info/debug inside a conditional. Performance testing shows these changes do improve the performance of create, read, update and delete methods.
Find and Modify now use returnOriginal as per spec

JAVA-1523
Merge pull request #278 from trishagee/perf

Ensure String.format is not on the critical path for any operations.
Added toString to BsonBinary
DBObjectCodec now gets decoders for BSON binary values from the codec registry, based on peeking the subtype.

 JAVA-1507
Find and Modify now use returnOriginal as per spec 2/2

JAVA-1523
Added Javadoc for all the lazy BSON object types.

  JAVA-1428
Added Javadoc for all the lazy BSON object types.

  JAVA-1428
Removed LazyWriteableDBObject and related classes.  These classes are poorly designed and violate the implicit contract of LazyBSONObject, which
allows the contents of the object to be piped to an output stream.  Doing so with a LazyWriteableDBObject instance will ignore any modifications
made to that instance.

  JAVA-1537
Excluded lazy writeable classes from clirr report

 JAVA-1536
Removed DBCollection.apply and DBCollection.doapply, as there are no longer even called
and have been deprecated in 2.13.

 JAVA-1538
Changed ByteBuf interface to support reference counting instead of Closeable.

  JAVA-1451