LLVM JIT: Prepare for adding branches and delay slots

Code using the 'alloca' instruction allocates entries on the stack to
hold the last value of an N64 register. An optimisation pass converts
'alloca' code to the SSA form before code emission, which will save a
lot of manual phi node insertion later.

A basic block is now created for every N64 instruction in a function
to be emitted. All loads of the initial values of N64 registers live
in a block that precedes every instruction's basic block; a new block
is created to contain the fall-through from the last opcode (returns
to the caller, which is the interpretation loop), and all stores of
the new values of N64 registers live in a block that follows every
instruction's basic block.

The changes to basic blocks will allow basic blocks implementing an
opcode that is the target of a jump in N64 code to also be targets
of a jump in the LLVM IR. Unreachable basic blocks are deleted by
another optimisation pass.

Preparations are made to allow for delay slots in llvm_ir_for_insn.

When in the delay slot, an instruction must not branch to the next
instruction to be executed, and must instead let the branch decide
where to go.
LLVM JIT: Show IR after optimisations as well

This allows quickly judging whether a function's LLVM IR is adequately
optimised.
LLVM JIT: Correct the type of the value stored for HI in DMULT[U]

Formerly it would try to store an i128 into the 64-bit register.