Maps metadata as a post-pass from each module when importing complete,
suturing up final metadata to the temporary metadata left on the imported
instructions.
This entails saving the mapping from bitcode value id to temporary
metadata in the importing pass, and from bitcode value id to final
metadata during the metadata linking postpass.
Also, to avoid needing to parse the module level metadata during
function importing, a new module-level record is added which holds the
number of module-level metadata values. This is required because
metadata value ids are assigned implicitly during parsing, and the
function-level metadata ids start after the module-level metadata ids.
Additionally, only map in needed DISubroutine metadata (imported functions
and other DISubroutine transitively needed by those). This is also
supported for LTO and llvm-link --only-needed (with associated tests).