reintroduced filename to SrcMap, some refactoring cleanup

Still poking around the codebase trying to understand what's going on. It seems like Loc should be tossed and SrcLoc reintroduced as the key of SrcMap, moving towards a solution where you can jump to a location not in the current file. Please correct me if I'm wrong, and don't consider these refactorings as an "insult", it helps me understand the code!