Merge pull request #3707 from 9rnsr/fix13011

Issue 13011 - inout delegate parameter cannot receive exactly same type argument
Merge pull request #3683 from WalterBright/fix12485

fix Issue 12485 - [REG2.065] DMD crashes when recursive template expansion
Merge pull request #3716 from 9rnsr/fix13027

[REG2.066a] Issue 13027 - Assertion `ex->op == TOKblit || ex->op == TOKconstruct' failed.
Merge pull request #3717 from 9rnsr/fix13026

[REG2.066a] Issue 13026 - object.get cannot be called with [] as "defaultValue" argument
Merge pull request #3715 from MartinNowak/fix12896

fix Issue 12896 - ld.gold complains about bad relocations when building libphobos2.so
Merge pull request #3710 from 9rnsr/fix_hash

Introduce correct default hash calculation that is consistent with object equality
Merge pull request #3711 from 9rnsr/fix12255

[REG2.066a] Issue 12255 - opCmp requirement for AAs breaks code
Merge pull request #3719 from 9rnsr/fix13053

[REG2.066a] Issue 13053 - Wrong warning on implicitly generated __xtoHash
Merge pull request #3720 from 9rnsr/fix13049

Issue 13049 - in template arguments the compiler fails to parse scope for function pointers arguments
Merge pull request #3721 from 9rnsr/fix13050

Issue 13050 - pragma mangle breaks homonym template aliasing
Merge pull request #3724 from 9rnsr/fix13044

Issue 13044 - Assignment of structs with const members
Merge pull request #3722 from yebblies/D1INOUT

[cleanup] Remove dead D1INOUT code from parser
Merge pull request #3703 from ibuclaw/targetpaint

Move CTFE paintFloatInt to Target::paintAsType
Merge pull request #3551 from MartinNowak/immutableModuleInfo

mark ModuleInfo as read-only data
Merge pull request #3718 from jasonbking/link

Fix 13048 - Solaris no longer needs -mt during linking
Merge pull request #3723 from 9rnsr/fix13021

Issue 13021 - Constructing union with floating type and then accessing its field in one expression causes ICE
Merge pull request #3728 from 9rnsr/2.066

Cherry-picking commits from master to 2.066 branch
Fix bogus zero-length array test.

Issue 7175 was about .ptr always giving null for a zero-length
static array in a struct, despite the fact that the struct has
size 1 and thus certainly a non-null address.

The test case as modified by 36c9b64, however, checks that a
free-standing zero-length static array on the stack has an
address, which is quite a different scenario. From the spec,
I don't see a reason why zero-sized objects should need any
memory associated with them, so I am reluctant to pessimize
LDC's codegen over this.
Merge pull request #3730 from 9rnsr/fix13071

[REG2.066a] Issue 13071 - [ICE] dmd 2.066.0-b1 assertion in nogc.c:73
Merge pull request #3732 from 9rnsr/fix13081

[REG2.066a] Issue 13081 - ICE with alias this and opSlice