The patch adjusts the existing llvm::DenseMap<unsigned, T> and
llvm::DenseSet<unsigned> objects that store source locations, so
that they use SourceLocation directly instead of unsigned.
This patch relies on the DenseMapInfo trait added in D89719.
It also replaces the construction of SourceLocation objects from
the constants -1 and -2 with calls to the trait's methods getEmptyKey
and getTombstoneKey where appropriate.