[DWARFLinker] Unique unnamed types by their contents (#231980)
An anonymous type is identified by its declaration file and line, but
several can be declared on one line, for example by a macro. The
parallel linker merged all of them into a single DIE. The classic linker
also considered the byte size, which got this right, but only for types
that had different sizes.
Make unnamed classes, structs, unions and enums consider their data
members, bases and enumerators, in addition to their declaration. As a
side effect, this also separates lambdas in function template
instantiations that capture different types, which the parallel linker
merged too.
rdar://189405402