deserializeDocument
Deserialize and return the next token as a Document.
If the document's value is a list or map, this method will deserialize all elements or fields recursively - the caller need not further inspect the value to attempt to do so manually.