Rebase into previous commit
Added support for BsonDocument.is<type>(String key) and BsonValue.is<type> to make certain usage patterns more natural to code
Using BsonDocument.isDocument(String key) and BsonDocument.isString(String key) to simplify code.