JIT64: Optimize cmpXX

Use TEST instead of CMP if we're comparing against 0 (rather common), and
optimize the case of immediate compares further.
JIT64: optimize sign-extend

Remove some code duplication.

Also remove some comments that no longer apply since x86_32 was dropped.
JIT64: avoid using LEA for adds when not necessary
JIT64: use LEA for the "a = b + imm" case of addi
JIT64: use xor instead of mov for loading a zero regcache immediate
JIT64: tweak srwx/slwx BindToRegister arguments

Register B gets immediately moved into the shift register, so even if a == b
it doesn't need to be loaded.
JIT64: Optimize carry handling

Carries are rather common and unpredictable, so do them branchlessly wherever
we can.
JIT64: optimize some special cases of srawix

Shift by 31 and 1, both of which are pretty common, can be done in a few less
instructions. Tested with a hwtest.
JIT64: support merged branching for rlwinmx, too

Not quite as common a branch instruction as cmpwi, but close.
JIT: unify subfe/submex/subfex/adde/addmex/addzex code

Shorter, plus should make future optimizations easier.
JIT: unify subfcx and addcx code

Again, shorter and should make future optimizations easier.