This PR reorganizes some data structures to be a bit more memory-efficient. Most of these changes are mechanical.
Collapse document data (which was a struct containing single field) into a string
Collapse diagnostic result (which was a struct containing single field) into a list of diagnostics
Move contains, moniker, and diagnostic relations out of documents/ranges and into a global map in the correlation state
Create a more memory-efficient version of DefaultIDSetMap that optimizes singleton sets (of which there are multiple orders of magnitude more in proportion to other sized maps)
Change the order in which result chunk are populated (by result chunk, not by random ordering of result identifiers)
Change the order in which moniker locations are pouplated (remove need for string-hashing for uniqueness)