Use abstracted registers for variable access.

This will allow us to work more easily with the ABI
differences between Win64 and the rest of the world.
Also using callee-save registers for special interpreter
variables such as our work register base. This makes
entry and exit somewhat more expensive but callouts
from JIT to C are cheaper.