Bson prefix for all bson values

Two changes here:

1. All BsonValue subclasses now are prefixed with 'Bson'.  For widely used existing classes like Binary and ObjectId, that meant adding new classes BsonObjectId and BsonBinary.  The former will continue to be used in DBObject and will be used in Document.  The latter in BsonDocument.
2. Moved all BsonValue-related classes from org.bson.types to org.bson.  See the commit comment for the reasons.
Name change of CodeWithScope to BsonJavaScriptWithScope (to match .NET and the BSON spec)