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