codeintel: Additional worker memory improvements
Created by: efritz
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)