JIT: implement timer support in mtspr

Faster, of course, since we avoid the interpreter, but also means we can
get more a more accurate timer in long blocks by adding the offset from the
start of the block to the retrieved timer. I don't know if this will actually
fix any issues, but it's more correct and a nearly-free improvement.
I'm not sure; I was copying other similar code, but you might be right. I suppose common sense would say "we only need to push ABI caller-save registers"? but it seems like we push *all* the registers in a lot of places, which confuses me a little