IR: Split MDNode into GenericMDNode and MDNodeFwdDecl
Split MDNode into two classes:
- GenericMDNode, which is uniquable (and for now, always starts uniqued). Once Metadata is split from the Value hierarchy, this class will lose the ability to RAUW itself.
- MDNodeFwdDecl, which is used for the "temporary" interface, is never uniqued, and isn't managed by LLVMContext at all.
I've left most of the guts in MDNode for now, but I'll incrementally
move things to the right places (or delete the functionality, as
Part of PR21532.