Fix issue 10198 CTFE struct Multidimensional block assignment

Block assignment of multi-dimensional fixed-length arrays was wrong in CTFE. It was only initializing the first dimension.

The wrong CTFE behaviour was actually coded into a test in test42.d.
It was clearly wrong because it behaved differently depending on where the
initialization was performed (it initialized all dimensions if declared in a CTFE function, but only initialized the first dimension if declared as a member of another struct). That test is fixed in this commit.