[[ Bug 14013 ]] Iterate over the keys of the RHS not the LHS in MCMathArrayApplyOperationWithArray()

If you have two arrays `A` and `B`and do

    multiply A by B

then in 6.7 `A` can contain keys that are not present in `B`, they are just left unchanged, but in 7.0 this was raising an error.  The problem was that `MCMathArrayApplyOperationWithArray()` was iterating over the keys of the left hand argument, eg `A`, and not the keys of the right hand side.
[[ Bug 14013 ]] Copy the left into the result at the start of MCMathArrayApplyOperationWithArray()

The result needs to be initialized with the value of the left, if not you only get the entries of the array that are modified.
Also improve the error messages somewhat.
Merge pull request #1573 from runrevstephen/bugfix-14013

[[ Bug 14013 ]] Iterate over the keys of the RHS not the LHS in MCMathAr...