First try at fixing gen_gccbuiltins for LLVM 3.6.

The referenced type is private therefore a LLVM change is required, too.
Fix use of llvm_rint with LLVM 3.6
Fixup -Wno-pedantic support detection (commit 1d30787b58).
Merge pull request #705 from klickverbot/no-pedantic

Fixup -Wno-pedantic support detection (commit 1d30787b58).
WIP #539 resetAll made up several percent running time for phobos
fix erasure of wrong objects
Merge pull request #687 from Trass3r/perfimprovements

first step #539
IrDsymbol::DModule is not used
Make IrDsymbol to be a typesafe union to reduce memory usage
Reduce size of IrDsymbol even more

resolved/defined/declared/initialized are turned into flags.
[Refactoring] Turn IrDsymbol flags into an enum value
Const and immutable fields with initializers are not globals since 2.064
Merge pull request #707 from AlexeyProkhin/IrDsymbol

Reduce the size of IrDsymbol struct
Fix gen_gccbuiltins utility for LLVM 3.6

The used type is private but using auto helps here.
Shared libs are no longer *UNSUPPORTED*.
[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).