isolate dmd from dt internals
[trivial] There is no 'final struct variable'.

The code don't have meanings anymore in D2.
Refactoring semanticTiargs
fix Issue 9178 - UDA: getAttributes does not play well with tupleof
Refactoring semanticTiargs more

Standardize processing of tiarg - type, symbol, and expression.
Fixes Issue 8922 - __traits(parent) should fail on top package import
fix Issue 8631 - illegal overrides accepted
preserve path to object file in COFF library to avoid ambiguities
refactor output file name generation
fix Issue 3404 - JSON output should retain original alias names
fix Issue 3466 - Wrong JSON output for templated classes, structs, and interfaces
fix Issue 4178 - destructor missing in JSON output
json refactoring
Fixes Issue 2452 - Better diagnostic on unimplemented interface.
Fixes Issue 9358 - Compiler creates duplicate switch cases on error.
moving toward pull #1179
Allow multiple `TEST_OUTPUT:` sections.

All of them are merged into one automatically in lexical order, and compared with actual output.
Fixes Issue 6057 - Nested enum declaration causes linker errors due to missing sections in obj file.
redo pull #1179
test case output