Test suite updates.
LDC does not support -transition yet.
Implement '-main'.
Never make external variables something else than external.

Fixes crash in DMD testcase 'mangle'.
Allow multiple declarations to share the same mangled name/LLVM global.

This is necessary to enable aliasing compiler-generated
symbols with pragma(mangle, …).

Note that globals for internal use are still directly
created.
Use '__ModuleInfoZ' for ModuleInfos, like DMD does.

This way, we stay at least compatible w.r.t. demanglers,
pragma(mangle, …) tricks.

Fixes DMD testcase 'mangle'.
Accept '.dd' pure DDoc files.
Do not re-codegen struct literals on taking address of globals.

The AST the frontend generates is arguably invalid, but we
have to deal with that.

Fixes DMD testcase 'interpret'.
Test suite updates.