Introduce the Bson interface, and replaced all use of Object in the high-level API with it.
BasicDBObject, Document, and BsonDocument will implement this interface, so any of them can be used to specify filter, sort, projection, update, etc. Third parties can create their own implementations to allow for other types to be used that are not included in the driver proper.