Merge pull request #3564 from 9rnsr/fix_onscope

Issue  6889 & 2456 - Fix diagnostic messages for OnScomeStatement
fix Issue 12798 - constant folding should optimize subsequent concatenations
minor error message improvements
Merge pull request #3580 from WalterBright/err-msgs

minor error message improvements
The `-o-` switch should suppress code generation always

I noticed that `REQUIRED_ARGS: -o- does not work for compilable test suites in Windows platform. In Windows. compilable test suites are compiled with `-map null.map` switches. `-map` switch will set `global.params.oneobj = 1` even though `global.params.obj == 0`, then compilable tests will always run codegen even if `-o-` is specified.
[Refactoring] Divide test cases to compilable/vgcX.d and fail_compilation/nogcX.d
Today scope storage class can work only for class object allocations

It's codegen limitation. See also the code in `NewExp::toElem`.
fix Issue 12642 - Avoid some heap allocation cases for fixed-size arrays
Unify diagnostic messages
Merge pull request #3581 from 9rnsr/fix12798

Issue 12798 - constant folding should optimize subsequent concatenations
Merge pull request #3582 from 9rnsr/fix_nogc

Issue 12642 - Avoid some heap allocation cases for fixed-size arrays
fix Issue 11181 - Missing compile-time error for wrong array literal
Merge pull request #3569 from 9rnsr/fix12760

[REG2.066a] Issue 12760 - Initializing an object that has "this(Args) inout" causes "discards return value" warning
Merge pull request #3583 from 9rnsr/fix11181

Issue 11181 - Missing compile-time error for wrong array literal
fix Issue 12802 - Allow optional 'StorageClasses' for new alias syntax
fix Issue 12660 - Wrong non-@nogc function invariant error
Additional issue 12642 fix for vector literal and @nogc
Merge pull request #3587 from 9rnsr/fix12642

Additional issue 12642 fix for vector literal and @nogc
fix Issue 11774 - Lambda argument to templated function changes its signature forever
Merge pull request #3589 from 9rnsr/fix11774

Issue 11774 - Lambda argument to templated function changes its signature forever