Update SourceManager::ContentCache::OrigEntry to keep the original FileEntryRef, and use that to enable ModuleMap::getModuleMapFile* to return the original FileEntryRef. This change should be NFC for most users of SourceManager::ContentCache, but it could affect behaviour for users of getNameAsRequested such as in compileModuleImpl. I have not found a way to detect that difference without additional functional changes, other than incidental cases like changes from / to \ on Windows so there is no new test.
Note: this should fix the Windows failure on https://reviews.llvm.org/D134923 which was caused by an incidental getFile call mutating LastRef on the FileEntry.
I haven't checked all uses, but do we still need all of OrigEntry/ContentsEntry/Filename? Seems like a single FileEntryRef should encapsulate all the information we need there.