Lsif collapsed results
Created by: efritz
This PR simplifies the blob format of a document:
- there is no longer a distinction between referenceResult/definition and referenceResult/reference as they both come back on reference requests
- definitionResults and referenceResults have been flattened from a class containing a list of identifiers to a list of identifiers
- flatten ranges when stored on disk (this can save some {, }, and " characters, and some pointer chasing)
- normalize hover data to a string so it's not a three-deep datastructure
- rename uri to path when talking about document locations within a project
- use relateUrl to get relative paths of a document