This change creates a DenseMapInfo trait specialization for the
SourceLocation class. The empty key, the tombstone key and the hash
function are identical to DenseMapInfo<unsigned>, because we already
have hash maps that use raw the representation of SourceLocation as
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 directly.