Rewrite `get` for performance, and to be more resilient to multiple instances of the same document. Same for `add`.
Check the cache when field values get set on a document
Fix getting an object from the cache based on a string id