MongoClientImpl now package-private
ErrorHandling class now package-private
fix(driver-compat) make ErrorOldTest.testPrevError to call requestDone() on exit
fix(driver) add delay before starting WaitQueueFullTrackingConnectionGetter in DefaultConnectionProviderTest.shouldThrowOnWaitQueueFull
Added support for multiple callback registrations on SingleResultFuture
Added MongoClientURI.getCredentials in driver-compat
Excluding codenarc rule ExplicitCallToCompareToMethod, because I want to be explicit about it when I'm testing a compareTo method
Added ServerVersion to ServerDescription as version property, to support feature testing based on version.
fix(driver) make DefaultConnectionProviderTest.shouldThrowOnWaitQueueFull less racy
Turn ON fail on findbugs errors. Again.
JAVA-870: Added SSLEnabled property to MongoClientOptions
test(driver-compat) add spec for BasicBSONDecoder
feat(driver) add mapReduce command and corresponding classes

Following changes done:
- classes added o.m.command.MapReduce, o.m.command.MapReduceCommandResult, o.m.command.MapReduceCommandResultCodec, o.m.operation.MapReduce, o.m.operation.MapReduceOutput
- tests added unit/o.m.command.MapReduceCommandSpecification
- changed DocumentCodec.readValue to be 'protected'
feat(driver-compat) implement mapReduce on top of org.mongodb.command classes
fix(driver-compat) return MapReduceOutput(DBCollection, DBObject, CommandResult) constructor
style(driver-compat) 'toNew()' is package-private and remove 'static' from enum declaration
refactor(driver) extract reading array into separate method and add specification
docs(driver) add documentation to map/reduce classes
docs(driver) update javadoc on org.mongodb.operation.{MapReduce, MapReduceOutput}
refactor(driver, driver-compat) split MapReduceCommandResult into 2 classes