[cleanup] Don't check global.params.useUnitTests twice.
[cleanup] Remove stale debug output statements.
Emit functions as available_externally instead of skipping them.

This finally fixes the performance regression due to missing
inlining after the switch to the DMD-style symbol emission
logic (what later became FuncDeclaration::needsCodegen).

In my tests, this slightly increased compile times in release
mode (~7% for a set of small-ish programs) due to the extra
codegen. The impact is that small because we were doing all the
extra semantic{2, 3}s anyway (only to throw their results away)
and still get to avoid the LLVM backend. The performance gains
are, depending on the benchmark, spectacular, as this was
responsible for things like std.array.front not getting inlined.
[cleanup] Fix a couple of typos.
[cleanup] Remove DtoMemoryBarrier (unused, unimplemented).
[cleanup] Remove unused getBiggestType/getPrefTypeAlign.
[cleanup] Remove unused DtoConstStringPtr.
Merge pull request #673 from klickverbot/availableexternally

availableExternally instead of skipping codegen.
Merge branch 'master' into merge-2.066

Conflicts:
	gen/functions.cpp
Merge DMD 2.066.1-rc1 plus dmd#3985.

This corresponds to DMD commit 9ca87d2855e30a42c65aea0be93a93449f82400c,
which will likely be released as 2.066.1.