Merge pull request #3451 from WalterBright/rmdup

excise .dup and .idup from compiler
Merge pull request #3449 from 9rnsr/fix7887

Issue 7887 - [CTFE] can't assign to returned reference
Merge pull request #3375 from Trass3r/optref

do dead code elimination in release with debug info mode
Merge pull request #3450 from AndrejMitrovic/ImportDiag

Change the diagnostic for wrongly imported modules
fix Issue 12574 - [ICE](statement.c, line 713) with reduce with wrong tuple arity

Make `TemplateInstance::semanticTiargs` reentrant against semantic errors.
[Refactoring] Make long member function names short
[Refactoring] Add detailed comment
start on @nogc
fix Issue 12581 - [ICE](statement.c, line 713) with invalid assignment + alias this

Make AssignExp::semantic reentrant for `op_overload` call.

-----

If an expression supports operator overloading, its `semantic` function should not store error expressions in itself until the point of `op_olverload` call (from [a] to [b]).

Example:

Expression *XXXExp::semantic(Scope sc)
{
  // [a]
    ...
    e1 = e1->semantic(sc);  // Bad: if semantic analysis returns ErrorExp,
                            // it is stored in this->e1 immediately.
    if (e1->op == TOKerror)
        return e1;

  // [b]
    Expression *e = op_overload(sc);
    if (e)
        return e;
    ...
}

If `XXXExp::semantic` is called from the `trySemantic` call for `alias this` analysis (from `op_overload` function in `opover.c`), the stored ErrorExp would accidentally escape from the gagged period.
fix Issue 12571 - __traits(parent) should work for typed manifest constant in initializer
Merge pull request #3456 from 9rnsr/fix12571

Issue 12571 - __traits(parent) should work for typed manifest constant in initializer
fix Issue 12524 - wrong type with inout const arg and inout return
Merge pull request #3457 from 9rnsr/fix12524

Issue 12524 - wrong type with inout const arg and inout return
Merge pull request #3454 from 9rnsr/fix12501

[REG2.066a] Issue 12574 - [ICE](statement.c, line 713) with reduce with wrong tuple arity
fix Issue 12586 - redundant error messages for tuple index exceeding
fix Issue 8373 - IFTI fails on overloading of function vs non function template
Merge pull request #3458 from 9rnsr/fix12586

Issue 12586 - redundant error messages for tuple index exceeding
Merge pull request #3440 from andron/implicit-build-rules

Build using implicit rules with pattern matching
Fixed offsets in comments for enum TOK
[Refactoring] Remove Scope::offset