DebugInfo: Write new DebugLoc API
Rewrite DebugLoc with a cleaner API that reflects its current status
as a wrapper around an MDLocation pointer.
- Add accessors/constructors to/from MDLocation.
- Simplify construction from MDNode.
- Remove unnecessary LLVMContext from APIs.
- Drop some API that isn't useful any more.
- Rewrite documentation.
Actually, I've left the old API behind temporarily at the bottom of the
class so that I can update callers in separate commits. I'll remove it
once the callers are updated.