An immutable Document implementation.
A strictly typed Map[String, BsonValue] like structure that traverses the elements in insertion order. Unlike native scala maps there
is no variance in the value type and it always has to be a BsonValue.
the underlying BsonDocument which stores the data.
The immutable Document companion object for easy creation.