Implemented basic org.mongodb.MongoException to com.mongodb.MongoException common wrapping for DBCollection.
Removed writeConcernIfAbsent from Insert, it's a remnant from an earlier architect.  Now, it should be initialised with a WriteConcern from the beginning.  This means the DBCollectionSpecification pass all tests now.
Removed writeConcernIfAbsent from Update
Removed writeConcernIfAbsent from Replace
Removed writeConcernIfAbsent from Remove, and from BaseWrite as it is no longer used anywhere.
Removed writeConcern method from BaseWrite - this is now a mandatory constructor field.  This simplifies the code a bit and means you can't accidentally forget to set a write concern.
All manual wrapping of Exceptions in DBCollection has now been moved to MongoExceptions.mapException.
Made constructor parameters for subclasses of BaseWrite most consistent in their parameter order.  Fixed inspection problems with files that were touched.
Added Spock test for DB so that we can check the wrapping of org Exceptions into com Exceptions.  Wrapped the only example that is manually wrapped.  This required moving the session ownership from DB into Mongo.
Shifted around some of the responsibilities between Mongo/DB so that Mongo doesn't have to worry about wrapping Exceptions at all.  DB should be the highest level org exceptions get to
refactor(driver-compat) TypeMapping -> DBObjectFactory
refactor(driver-compat) rename DBCollection.codec to DBCollection.objectCodec
style(driver-compat) fix Checkstyle warnings in DBCollectionTest and CollectibleDBObjectCodec
chore (driver-compat) move spock tests to 'unit' subdirectory of 'test'
fix(driver-compat) make DB.executeCommand not wrap a org.mongodb.MongoCommandFailureException
style(driver-compat) update test name in DBSpecification
fix(driver-compat) revert changes introduced in 42070f882f46e852a8b52851d6fb9ee3cc2afe52 and 149aa0bbdb67f5d6aa6b4c6d56701447d717b110
fix(driver-compat) make Bits.readFully support offset for buffer array
chore(driver-compat) add @Immutable to DBObjectFactory
fix(driver-compat) add FACTORY to DefaultDBEncoder and & factories in other classes final