A bunch more IRQ stuff, have a good debug setup now

NOTE: To debug: set breakpoints at POP line in IRQ and setMSP line in
process_switch. Type something into UART0. Note that after some time, we
hit the breakpoint at POP -- should this even be happening? Might well
be one of the reasons we end up running IRQ one too many times.