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.
fix Issue 10506 - Purity should not be checked in a mixin statement
fix Issue 10526 - opDispatch with IFTI should not disable UFCS

When opDispatch result is a function template that requires IFTI, it would be kept on `DotTemplateInstanceExp` so `ti->needsTypeInference(sc)` returns TRUE in its semantic().

UFCS dispatch should check that the opDispatch result is really valid or not, by instantiating the function template.
refactor (only) of doswitch()
fix Issue 10534 - Addition and subtraction of delegates allowed
fix-up for the improvement of default argument processing
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 ||