Fix 1176647: Jit does invalid reordering of left and right side
This bug occurs in the Lowering of the code for a compare, where op1 is an indirection, and op2 is a call. It chooses to make op1 "contained" (i.e. do the load as part of the compare op), but this is invalid because the call may modify op1.
This also fixes a similar issue with RMW operators (e.g. +=).
Fixing this causes numerous regressions (a few improvements, due to keeping fewer things live across the call), but they look valid - that is, they are a similar case of delaying a load past a call.
[tfs-changeset: 1480705]