Fix LLVM 3.6 build
Use gcc as linker on MingW
Fix typo
Fix MingW build with LLVM 3.5

Starting with LLVM 3.5 it is better/required to use Triple.isWindowsGNUEnvironment().
Reported by Daniel N.
Fixes issue #703.

The function declaration fd may be null on an indirect call.
LLVM 3.6 fix: stream constructor now takes std::error_code instead of std::string
Use LLVM intrinsic name as mangled name.

If the mangled name is viewed as the name emitted into IR code then the mangled name of an intrinsic is the intrinsic's name.
The name is unique because of the `llvm.` prefix. The only point is that overloaded intrinsics must be resolved earlier.

This commit moves the resolution of oveloaded intrinsics into the semantic analysis pass. The
Add -Wno-pedantic only if supported by compiler
Merge pull request #704 from redstar/intrinsics2

Use LLVM intrinsic name as mangled name.
Enable integrated assembler on MinGW with LLVM 3.5 or later
Define POSIX only for DMD frontend file.

The name POSIX is used by LLVM 3.6. The define creates a name clash between DMD and LLVM source.
More name clash fixes
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