Fix issue 10198 CTFE struct Multidimensional block assignment

There are two bugs. (1) The code in todt.c ignored the possibility
that an initializer could be explicitly specified in the struct literal.
This is not the same as an initializer specified in the declaration of
the field.
This wrong behaviour was actually coded into a test in test42.d.
(2) The CTFE code didn't consider the multidimensional case.
refactor (only) of doswitch()
Merge pull request #2094 from donc/ctfe10198multiblock

Fix issue 10198 CTFE struct Multidimensional block assignment
Output ddoc test result to results dir.
Merge pull request #2300 from AndrejMitrovic/Fixup4899

Output ddoc test result to results dir.
Merge pull request #2294 from 9rnsr/fix10534

Issue 10534 - Addition and subtraction of delegates allowed
Merge pull request #2292 from 9rnsr/fix_ufcs

Issue 10526 - opDispatch with IFTI should not disable UFCS
Merge pull request #2289 from 9rnsr/fix10506

Issue 10506 - Purity should not be checked in a mixin statement
Merge pull request #2295 from WalterBright/refactor-doswitch

refactor (only) of doswitch()
optimize sequence of || with BT
Merge pull request #2299 from WalterBright/opt-oror

optimize sequence of ||
[Refactoring] Remove semantic() call with NULL sc

Don't run semantic for corresponding TypeSArray generation.
Remain fix for issue 6169

Add ctfeResolveProperties() which avoids purity and safety check
Replace to startCTFE and endCTFE