Improve the way the ObjC data formatters fetch a valid frame to use for running expressions against

This is not bullet-proof, as you might end up running in a thread where you shouldn't, but the previous policy had the same drawback
Also, in cases where code-running formatters were being recursively applied, the previous policy caused deeper levels to fail, whereas this will at least get such scenarios to function
We might eventually want to consider disqualifying certain threads/frames for "viability", but I'd rather keep it simple until complexity is proven to be necessary
SLP Vectorizer: Canonicalize tree operands of commutitive binary operands.