Interpreter: fix carry calculation in srawx

I don't know anything this affected, but it didn't match the manual (or JIT).
Add hotkeys to select save state slots and to save/load the currently selected slots.
JIT: use cvtsi2ss in paired singles

One less instruction for a few of the loads.
JIT: simpler fallback conditions for load/store float

I wasn't really thinking when I wrote these; d/s are for float registers, not
gprs.
Wrap some function calls in ABI_Push|PopRegistersAndAdjustStack(0, 0);

These calls are made outside of JIT blocks, and thus previously did not
read any protection - register use is taken into account and the outer
dispatcher stack frame is sufficient.  However, if data is to be stored
on the stack, these calls must reserve stack shadow space on Windows to
avoid clobbering it.
Opportunistically predict BLR destinations using RET.

When executing a BL-type instruction, push the new LR onto the stack,
then CALL the dispatcher or linked block rather than JMPing to it.  When
executing BLR, compare [rsp+8] to LR, and RET if it's right, which it
usually will be unless the thread was switched out.  If it's not right,
reset RSP to avoid overflow.

This both saves a trip through the dispatcher and improves branch
prediction.

There is a small possibility of stack overflow anyway, which should
be handled... *yawn*
Shorten the blr stub a bit.
Run exception handlers on an alternate stack on Linux.

*Completely untested.*  Someone please test.
Reorganize backpatching a bit.  Untested on ARM.

Rather than *MemTools.cpp checking whether the address is in the
emulated range itself (which, as of the next commit, doesn't cover every
kind of access the JIT might want to intercept) and doing PC
replacement, they just pass the access address and context to
jit->HandleFault, which does the rest itself.

Because SContext is now in JitInterface, I wanted JitBackpatch.h (which
defines it) to be lightweight, so I moved TrampolineCache and associated
x64{Analyzer,Emitter} dependencies into its own file.  I hate adding new
files in three places, two of which are MSVC...

While I'm at it, edit a misleading comment.
JIT: rename a few constants to be more accurate

Remove the '2'; it's not longer applicable.
Be pedantic about stack overflow on Linux and OS X.

Add some magic to the fault handler to handle stack overflow due to BLR
optimization, and disable the optimization if fastmem is not enabled.
JIT: implement remaining psq_l/st instruction variants

These are used in at least a few popular games, including Super Smash Bros.
Brawl.
Merge pull request #1025 from comex/blr-optimization

Opportunistically predict BLR destinations using RET.
Add missing push wrapper around UpdatePerformanceMonitor
Fix backwards #ifdef.
Correct inaccurate comment.
Merge pull request #1104 from comex/its-like-the-bad-old-days-where-i-broke-master-over-and-over

Fix BLR optimization (sorry)
JIT: fix regression in ps_sel

My code didn't maintain correct semantics with floating-point NaNs (a < b is
not the same as "not a >= b" in float), which seems to have broken FIFA 12.
Merge pull request #1105 from FioraAeterna/pssel

JIT: fix regression in ps_sel
JIT: fix debug mode