JIT: Carry optimizations!

These commits basically:

1/2: Refactor the carry-affecting arithmetic ops to save ~130 lines of code and make the later patches easier.
3: Add PPCAnalyst optimization for not calculating carry flags that won't be used (especially useful for srawix).
4: Add the ability to keep carry flags in the x86 flags register between ops in the case that they're used in the next op, such as in super common idioms like subc/subfe and so on.
5: Reorder carry-affecting instructions to try to be next to each other whenever possible.

Seems to be ~12% faster overall in Pokemon Puzzle from a quick inaccurate benchmark. Probably a lot less in actual games, but I don't know.