Add support for interrupts

Add support for interrupts to the kernel, to handle events such as timer ticks or key presses.