Changes the native execution of the rseq region to target the start of the sequence rather than the abort handler. This is done for two reasons: to support abort handlers which simply abort and do not restart, and to make it much easier in the future to run a copy of the sequence rather than rely on call-return semantics in the app code.
Adds preservation of input registers, limited to general-purpose registers clearly read-before-written in the sequence. Documents the new restrictions. Tries to pick a better scratch register, though this should go away once we switch to using a local copy.
Issue: #2350 (closed)