LLVM JIT: Use LLVM GlobalVariables to represent important variables

This improves code generation by using base+displacement addressing, at
least on x86 and amd64, for accesses to N64 registers through 'reg'. It
also gives meaningful names to the addresses being used in LLVM IR if
shown via [#define LJ_SHOW_LLVM_IR].
LLVM JIT: Add a basic optimiser for IR functions