Possible fix for faulty interrupt execution.

FireInterrupt now logs the last interrupt to be fired (and not enqueued)
in a data structure that gets inspected at the beginning of the next
instruction cycle. This way, register changes and stack modifications
are delayed past the end of the current execution cycle, avoiding
interference effects due to mid-instruction Cycle decrements triggering
hardware interrupts.