Set limit(-1) for findOperations when using first() in OperationIterable

Performance improvement for find().first() scenarios.
JAVA-1527
Normalize DBCollection findOne()

Now uses the more conventional limit(-1) rather than batchSize(-1).
Although under the covers it equates to the same thing, it seems to
be the norm across drivers.
ConnectionId now has-a ServerId, which in turn has-a ClusterId.
Updated all the listener interfaces to take parameters of type ConnectionId, ServerId, or ClusterId, as appropriate

  JAVA-1512, JAVA-1513
Removed support for the exhaust flag until we decide whether it's going to be supported by the server in the long term or deprecated.

 JAVA-1520
Adding ability to debug gssapi in gradle
Added MongoClientOptions description to JMX Bean name

JAVA-1504
Check not authenticated for eval test
Fixed race conditions in some async tests
Updated UserOperationSpecification to use default credential type instead of MONGODB-CR
Cached input and output stream in SocketStream
Cached String value of ConnectionId to avoid cost of String.format
Surrounded debug and trace logging with isEnabled checks to avoid cost of String.format
Removed parallelCollectionScan methods from MongoCollection

 JAVA-1521
Fixed timestamp support in JsonReader.  It now supports the current extended JSON format as well as the shell format.

 JAVA-1486
Removed unused DB reference in DBObjectCodec
Work around localhost exception issues in addUser helper

JAVA-1528
Fully remove unused DB reference in DBObjectCodec
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