JAVA-1189: Allow commands to exceed the maximum document size by 16K, so that commands like findAndModify with a 16MB document will not throw.
Prefixing all BsonValue subclasses with "Bson".  For the existing classes like Code and ObjectId, they no longer extend BsonValue.  Instead, new classes with the "Bson" prefix were added.
Added BsonBinary subclass of BsonValue.  The existing Binary class no longer extends BsonValue.
BsonValue and all subclasses have been moved from org.bson.types to org.bson.  It makes sense, but also is necessary so that there are not two classes in the same package with the same name but different capitalization (the existing and unfortunately-named BSONTimestamp class and the new BsonTimestamp class).
Rename TimestampCodec to BsonTimestampCodec
Added back the existing Symbol class.
Javadoc for BsonNumber
BsonValue constructor back to package-protected
[Bug] DBObjectCodec always serialises the ID first, so any query document (i.e. document that isn't a storage document) that specifies it in a different position will fail, as it always gets moved into first place before encoding.  Wrote tests to prove the failing cases, and also move all the sort tests from DBCursorTest into DBCursorFunctionalSpecification (this is one of the areas affected).