Without this patch the file list of the preamble index contains URIs, but other indexes file lists contain file paths.
This makes indexedFiles() always returns IndexContents::None for the preamble index, because current implementation expects file paths inside the file list of the index.
This patch fixes this problem and also helps to avoid a lot of URI to path conversions during indexes merge.
iterating over all the symbols here (and refs below) seems really unfortunate. But looking at the previous discussions that seems to be best of both worlds until we populate a file list in SymbolCollector. However, I think it would be better to do the looping after releasing the lock (we already have the information copied over to our snapshots).
moreover we seem to be still inserting keys of the Symbol and RefSlabs into Files, but not doing that for RelationSlabs, why? (i believe we shouldn't be inserting the keys at all, if we indeed want to just insert URIs and keep treating the keys as opaque objects).