TODO
====
BSON
----
+ support something like toSql (convert a haskell type to bson)
+ reject keys that start with "$" or "."