JIT: use memory destination operands wherever possible

Avoids lots of redundant instructions in the case of destination
operands that will never be used again in the block.
JIT: optimize crclr special case of crxor
JIT: flush unused registers during branch merges

Also correct some flags in interpreter tables.