DIP69: C++ namespaces
Stop running semantic3 for unittests in non-root modules

This is important due to avoid out-of-memory error with `-unittest -inline`. Currently front-end inlining requires running semantic3 for all imported modules to analyze expanded function body code. By this change, we can remove the Phobos unittest analyzing cost in user application compilation.
fix Issue 10985 - Compiler doesn't attempt to inline non-templated functions from libraries (even having the full source)
[Refactoring] Rename RTLSYM_DARRAY to RTLSYM_DARRAYM, and add new RTLSYM_DARRAY
fix Issue 846 - Error 42: Symbol Undefined "<mangle_of_class_template>__arrayZ"

Stop using ModuleInfo for assertion and array bounds check.
Instead pass filename to `_d_assert`, `_d_unittest`, and `_d_arraybounds`.
Merge pull request #3552 from 9rnsr/fix846

Issue 846 - Error 42: Symbol Undefined "<mangle_of_class_template>__arrayZ"
fix Issue 8738 - Struct literal breaks assigment ordering
Merge pull request #2561 from 9rnsr/fix10985

Issue 10985 - Compiler doesn't attempt to inline non-templated functions from libraries (even having the full source)
Merge pull request #3517 from WalterBright/DIP69

DIP61: C++ namespaces
fix Issue 12769 - ICE returning array
Merge pull request #3559 from 9rnsr/fix12769

[REG2.065] Issue 12769 - ICE returning array
Fix variable shadowing
Explicitly cast array bounds to size_t
Fix implicit conversion to bool
Remove unused and shadowing variable
Merge pull request #3563 from yebblies/boolconvx

[DDMD] Fix implicit conversion to bool
Merge pull request #3560 from yebblies/shadowidents

[DDMD] Remove unused and shadowing variable
Merge pull request #3561 from yebblies/sc2shadow

[DDMD] Fix variable shadowing
Merge pull request #3562 from yebblies/sizetcast

[DDMD] Explicitly cast array bounds to size_t
Merge pull request #3557 from 9rnsr/fix8738

Issue 8738 - Struct literal breaks assigment ordering