This change creates a DenseMapInfo trait specialization for theThe patch adjusts the existing `llvm::DenseMap<unsigned, T>` and
SourceLocation class. The empty key, the tombstone key and the hash`llvm::DenseSet<unsigned>` objects that store source locations as
function are identical to DenseMapInfo<unsigned>raw `unsigned` representation, because we already
have hash mapsso that use raw the representation of they use `SourceLocation as
a key` directly.
The patch also converts the existing llvm::DenseMap<unsigned, T>,
llvm::DenseSet<unsigned> and std::map<unsigned, T> objects that store
source location as 'unsigned' to using SourceLocation directlyis patch relies on the `DenseMapInfo` trait added in D89719.