Fix: Issue 10520 - [profile+nothrow] Building with profiler results in "is not nothrow" error on some contracts

When Statement#blockExit() checks if the statements may throw or not, it
can also emit compile error.
We turn the second argument of it, mustNotThrow, to false
so that the error is suppressed.
Fix Issue 9570 - Wrong foreach index implicit conversion error
mark ModuleInfo as read-only data
Fix Issue 10071 - 'real' alignment wrong on OS X 32 bit
Mask debug print code in debug-build dmd
Merge pull request #3659 from 9rnsr/fix_pull3620

Mask debug print code in debug-build dmd
switch to Boost license
Merge pull request #3648 from yebblies/issue10071

Issue 10071 - 'real' alignment wrong on OS X 32 bit
Merge pull request #3655 from WalterBright/boost

switch to Boost license
Commit 1169754 updated TOK enum without fixing up the offset comments
Merge pull request #3660 from lionello/fixoffsets

Commit 1169754 updated TOK enum without fixing up the offset comments
Only do *&ex -> ex optimisation if there is no type punning involved
Merge pull request #3662 from ibuclaw/fix12900

Only do *&ex -> ex optimisation if there is no type punning involved
Remove virtual keyword.

It was added in GitHub pull request #2895, but since fell
into disfavor compared to a more general way of negating
storage classes.
[Refactoring] Separate test case for issue 3882 and relates
Merge pull request #3663 from klickverbot/remove-virtual

Remove virtual keyword.
[Refactoring] TypeFunction::purityLevel
fix Issue 12909 - [AA] Function is incorrectly inferred as strongly pure for associative array with key of non-mutable array or pointer as argument
fix Issue 12910 - [AA] `rehash` is incorrectly inferred as strongly pure for some associative arrays
Merge pull request #3667 from 9rnsr/fix12909

Issue 12909 & 12910 - fix purity level calculation for AA parameter