DebugInfo: Remove DIDescriptor from the DIBuilder API
As a step toward killing DIDescriptor and its subclasses, remove it
from the DIBuilder API. Replace the subclasses with appropriate
pointers from the new debug info hierarchy. There are a couple of
possible surprises in type choices for out-of-tree frontends:
- Subroutine types: MDSubroutineType, not MDCompositeTypeBase.
- Composite types: MDCompositeType, not MDCompositeTypeBase.
- Scopes: MDScope, not MDNode.
- Generic debug info nodes: DebugNode, not MDNode.
This is part of PR23080.