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 #3582 from 9rnsr/fix_nogc

Issue 12642 - Avoid some heap allocation cases for fixed-size arrays