Refactor FileManager::GetUniqueIDMapping to populate an array of 
OptionalFileEntryRefDegradesToFileEntryPtr instead of UID to 
FileEntry *. This should allow the path serialization of input files
to use the paths used when looking up a file entry, instead of the 
last reference.
Per the FileManager documentation, VirtualFileEntries is a subset of 
SeenFileEntries. This means we only have to iterate over the latter 
to create a complete UID mapping.
Since we're already modifying the two only users of this function, maybe we could use Optional<FileEntryRef> instead of OptionalFileEntryRefDegradesToFileEntryPtr (which we want to eventually remove)?