Added support for global variables.
This requires including `start.asm` as the first code. This includes
a `jmp` to 0x100 for user code, and a magic number that modules
can check to verify th the user has correctly reserved the space.
The magic number is 0xb301534c:
* This has the high bit set so is not a valid instruction
* On builds that ignore the high bit this decodes to `nor zr, zr,
0x534c` a no-op.
* The immediate is "SL" for standardl ibrary.
Due to a bug start pads with U... 0, instead of @addr.
`start.asm` also initialises `sp` so it start just below the 64KiB LUT
memory alocation.
Added some error codes for the upcoming graphics module.