DWARF forward template parameters + type units

Added a workaround for simplified template names for now here: DebugInfo: Include template parameters for simplified template decls … · llvm/llvm-project@2e58a18 · GitHub

But yeah, in the long term, a composite type flag would probably be a good idea.

It does hinge a bit on whether this other issue is addressed ( DWARF Type Units and single definition types - #2 by pogo59 ) - without that addressed, I’m leaning towards never producing a synthetic declaration in a type unit - if something is in the CU I’ll just assume it can’t be forward declared (because it might contain references to internal-linkage types) and skip using a type unit for the referencing type too anyway. But if we address that issue by flagging type-unit-able types distinct from decl+def merging types (currently using the mangled name identifier) - then we would need to address this again, because we could have an identifiable type that’s still not in a type unit and so needs a declaration to be synthesized…