armjit: Do shifts with imms as much as possible.

This may even make an imm operand2 safe that wasn't before.
Avoid a literal in ORI2R where possible.
armjit: inline byteswaps of imm values.
x86jit: Implement wsbh/wsbw.
armjit: Implement mult/multu for immediates.

Uncommon, but may reduce instructions a bit.
armjit: Avoid flushing an imm in beq/bne/etc.

We might be able to STMIA it instead.
armjit: Small optimization to syscall instr.
Compile the cache instruction to nothing.

Was showing up in a few profiles, does nothing currently.
armjit: Minor cleanup and logging tweaks.
armjit: Remember reg imm values even after flush.

This way, we can base other imm values off them, or even do imm math using
them.  We can also avoid re-flushing an imm.
armjit: Replace MOVI2R with using the regcache.

So that it can optimize the value with existing imms.

Not actually optimizing yet.
armjit: Try to find imms to optimize a reg load.

This way we skip the MOVW/MOVT and go for one op only.
armjit: Optimize imm addresses (could do better...)
armjit: Optimize immediate load/stores in a row.
armjit: Don't reload an armreg ptr marked noinit.
Merge pull request #4503 from unknownbrackets/armjit-imms

Retain immediates in the armjit, optimize similar imms