Handle IRQs through the interrupt handler (this is untested)
Added PIT code and some small fixes.

- Add interrupt 0x80 for possible syscalls in the future
- Add CPUID functions to find CPU features
- Add PIT code for the interrupt timer
- Work on panic a bit more to show registers from interrupts
- The stack isn't even (1 << 16) bytes big, don't try and make chars that size until we have a larger stack.
Combined and fixed the IRQ and ISR handler

- Subtracted 12 bytes from the stack instead of 8 which fixes the IRQ/ISR handler, combining both handlers into one.
- Added syscall interrupt 0x80 for applications (and testing)
- Don't panic when the kernel execution ends, this causes issues.
- Print a stack trace (sort-of) of the functions when we panic
- Clear the VGA terminal before we print the panic message
- Change the formatting of the panic message to be a bit more human-readable and make better use of the limited screen space