Fix Issue 5908 - Optimizer generates wrong value with divide-by-zero.

Reinstate optimizer error for integer division by zero
Normalize backend's elf structures with system headers.
Forward to system headers when available.
implement UDA for module declaration
make typedef an error
[Refactoring] simplify the code to inherit @safe attribute
[Refactoring] simplify the code in checkPurity
fix 9148 - Issue 9148 - 'pure' is broken
Remove hack for issue 10981
fix Issue 9620 - Error messages of failed pure enforcement
fix Issue 12912 - Lambda function is incorrectly inferred as impure if it uses member field or function
fix Issue 12908 - [AA] `foreach` by keys and values over associative array in pure function allow impure function calls
fix Issue 13120 - Body of `foreach` over string with transcoding ignores function attributes
Merge pull request #4029 from WalterBright/typedef-error

make typedef an error
fix Issue 13356 - [ICE] (dmd 2.066: statement.c:754) with recursive Algebraic
[Refactoring] Remove goto jumps
fix Issue 11888 - Incorrect behaviour taking slice from return value
fix Issue 13563 - ICE with opIndexAssign op-overloading and ModuleScopeOperator
fix Issue 13564 - nested struct destructor trying to access members of a global class fail to compile
Fix x64 compilation with MSVC
Merge pull request #4041 from CyberShadow/pull-20141002-115249

Fix x64 compilation with MSVC