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"
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 12749 - Constructor-local function allows multiple mutation of immutable member
Add type qualifier to the diagnostic for invalid field/variable initialization