Add CopyElementAs{Boolean,String,Number,{Unsigned,}Integer,Real,Array} to MCExecContext

These are equivalents to the similar functions in MCExecPoint
(cherry picked from commit 968dd3501dbfa1bd60fe594013e88d3de64c444b)
Add MCExecContext::CopyElementsAs{StringArray,Filepath,FilepathArray}

These methods copy an element as an array of strings, a path to a file or an array of paths to files, respectively.
(cherry picked from commit d5288a829c479740962f27784fb2058fd5f9d539)
Add CopyOptElementAs{String,Filepath}{,Array} to MCExecContext

These are identical to their non-optional bretheren except that they assign the destination to the empty string or array (as appropriate) if the named element is not present in the source array.
(cherry picked from commit 9e82d679be24bf5c900f2f15f0dbfe054ec822d7)
Add CopyOptElementAsBoolean method to MCExecContext

Copies a boolean element from an array or, if it doesn't exist, sets the desination to kMCFalse.
(cherry picked from commit 7854f702ee15ec720cf2f20289391c1adafecf2d)
Add missing MCExecContext::ConvertToArray implementation
(cherry picked from commit e9432ae2587ee732a2c0f9a69307f13c43107f37)
Corrections to CopyElementAsStringArray and ConvertToArray

The former should split a string into an array, not assume an array of strings in the first place. The second lacked a required typecast.
(cherry picked from commit 986418a182e889b1b1bd81d0b7dd39a417be6b39)