Fix bogus zero-length array test.

Issue 7175 was about .ptr always giving null for a zero-length
static array in a struct, despite the fact that the struct has
size 1 and thus certainly a non-null address.

The test case as modified by 36c9b64, however, checks that a
free-standing zero-length static array on the stack has an
address, which is quite a different scenario. From the spec,
I don't see a reason why zero-sized objects should need any
memory associated with them, so I am reluctant to pessimize
LDC's codegen over this.
Normalize backend's elf structures with system headers.
Forward to system headers when available.
Add TemplateInstance::tnext to construct instantiation dependency graph

To detect speculative instantiations in codegen phase, `tnext` is neccesary for the `test6()` case `runnable/link13350.d`. That's a big difference from the PR #2550.
Check for NULL when looking up getenv("HOME").
fix bug in Expression::extractLast
fix use of NrvoWalker

If fbody is the rewritten statement, the replaceCurrent should modify the fbody.
[Refactoring] fbody->semantic() does not modify FuncDeclarataion::type
[Refactoring] CtorDeclaration::syntaxCopy()
fix Issue 13336 - auto ref return deduced to be ref despite return value coercion
Merge pull request #3980 from quickfur/issue12130

Check for NULL when looking up getenv("HOME").
Merge pull request #3979 from 9rnsr/fix13336

Issue 13336 - auto ref return deduced to be ref despite return value coercion
add __c_long_double
fix Issue 13459 - segfault in two auto opSlices()
Create builtin for popcnt.

As suggested by @klickverbot popcnt should be a builtin as it is now an intrinsic.
Merge pull request #3983 from 9rnsr/fix13459

Issue 13459 - segfault in two auto opSlices()
[Refactoring] Add Type::equivalent(Type *t)
fix Issue 13437 - [e2ir] ICE in e2ir.c 4616
fix Issue 6334 - Template is silently not instantiated
fix Issue 7553 - auto template param triggers mixin conflict
fix Issue 7849 - Manifest constants don't resolve the polysemous literal type