[interrupt] Rewrote irqHandler and added overall support for all interrupts

Rewrote irqHandler to be much simpler and easier to understand, while still
supporting all interrupts.

Added support for all interrupts to EnableInterrupt and DisableInterrupt.