IR: Add MDLocation class

Add a new subclass of `UniquableMDNode`, `MDLocation`.  This will be the
IR version of `DebugLoc` and `DILocation`.  The goal is to rename this
to `DILocation` once the IR classes supersede the `DI`-prefixed
wrappers.

This isn't used anywhere yet.  Part of PR21433.

llvm-svn: 225824
diff --git a/llvm/lib/IR/LLVMContextImpl.cpp b/llvm/lib/IR/LLVMContextImpl.cpp
index d47a0d3..1fa080b 100644
--- a/llvm/lib/IR/LLVMContextImpl.cpp
+++ b/llvm/lib/IR/LLVMContextImpl.cpp
@@ -140,11 +140,15 @@
     I->dropAllReferences();
   for (auto *I : MDTuples)
     I->dropAllReferences();
+  for (auto *I : MDLocations)
+    I->dropAllReferences();
 
   for (UniquableMDNode *I : DistinctMDNodes)
     I->deleteAsSubclass();
   for (MDTuple *I : MDTuples)
     delete I;
+  for (MDLocation *I : MDLocations)
+    delete I;
 
   // Destroy MDStrings.
   MDStringCache.clear();