Merge pull request #3849 from 9rnsr/fix13235

Issue 13235 - Wrong code on mutually recursive tuple type
Merge pull request #3822 from 9rnsr/fix13204

Issue 13204 - recursive alias declaration
Merge pull request #3878 from 9rnsr/fix13333

Issue 13333 - Incorrect error ungagging during the resolution of forward references
Merge pull request #3874 from 9rnsr/fix13299

[REG2.066a] Issue 13299 - Property not found with typesafe variadic opDispatch
Merge pull request #3896 from 9rnsr/fix13294

[REG2.066] Issue 13294 - [IFTI] IFTI fails or works incorrectly for function with const and mutable `ref` parameters of most types
Merge pull request #3897 from 9rnsr/fix13374

[REG2.061] Issue 13374 - Wrong template overload resolution when passing function to alias/string parameter
Merge pull request #3900 from 9rnsr/fix11312

Issue 11312 - Avoid auto-dereference for UFCS functions
Merge pull request #3901 from 9rnsr/fix13353

[REG2.066] Issue 13353 - [ICE] assertion with is() and templated interface
Merge pull request #3902 from 9rnsr/fix13311

[REG2.065] Issue 13311 - ICE, CtorDeclaration::semantic(Scope*): Assertion `tf && tf->ty == Tfunction' failed
Merge pull request #3826 from yebblies/issue12503

Issue 12503 - Bad optimization with scope(success) and return statement
Merge pull request #3889 from WalterBright/fix13321

[reg] Temporary fix Issue 13321 - Wrong goto skips declaration error
Merge pull request #3884 from WalterBright/fix11946

[reg] fix Issue 11946 - need 'this' to access member when passing field to template parameter
Merge pull request #3879 from WalterBright/fix13303

[Reg] fix Issue 13303 - Internal error: ..\ztc\cgcs.c 351 with rvalue Variant.get call
Merge pull request #3903 from 9rnsr/2.066

Cherry-picking commits from master to 2.066 branch (for the minor release 2.066.1)