Define the BSON enum and implement/test as much of it as is possible without internalizing BSONValue.
SWIFT-509 can be closed as part of this work. Also, a test can be added that will also close SWIFT-324.
Ensure new BSONValues are added to AllBSONTypes
We should be able to exhaustively switch on BSONValue types