Flush regs using STMIA if possible, so imm adjustments (armjit)

I'm not sure how well I'm measuring, but if I'm measuring properly this improved performance by several points in Dissidia (specifically the STMIA change.)

Additionally, this:
 * Uses a typesafe MIPSGPReg enum, rather than an int, for the regcache so we get compiler errors.
 * Replaces subu reg, imm, reg with RSB when imm is op2-able.
 * Flushes imms to regs (instead of R0) when doing math and they aren't op2-able.
 * Tries to allocate regs in order a bit (required for the STMIA change.)

This makes me think we might get a decent gain by using LDMIA based on analyzing a block and deciding we are gonna load certain regs, if they happen to be in order.

Anyway, could use more performance tests, I only tested 3-4 games (been a bit short on time this week.)

-[Unknown]