JIT: flush a register if it won't be used for the rest of the block

 This should dramatically reduce code size in the case of blocks with
 lots of branches, and certainly doesn't hurt elsewhere either.

 This can probably be improved a good bit through smarter tracking of register
 usage, e.g. discarding registers that are going to be overwritten, but this
 is a good start and should help reduce code size and register pressure.
 Unlike that sort of change, this is a "safe" patch; it only flushes register
 which can't affect correctness, unlike actually discarding data.

 As part of this, refactor PPCAnalyst to support distinguishing between
 float and integer registers (to properly handle instructions that access
 both, like floating-point loads and stores).

 Also update every instruction in the interpreter flags table I could find
 that didn't have all the correct flags.