Begin task refactor

Store state using interrupt stack instead. Looks like `int 0x80` doesn't
work though, which is odd.
diff --git a/src/kernel/descriptor_tables.c b/src/kernel/descriptor_tables.c
index 916a1ae..94f62df 100644
--- a/src/kernel/descriptor_tables.c
+++ b/src/kernel/descriptor_tables.c
@@ -3,6 +3,7 @@
 #include "log.h"
 #include "pic.h"
 #include "vga.h"
+#include "faults.h"
 
 extern void gdt_flush(uint gdt);
 extern void idt_flush(uint idt);
@@ -74,6 +75,8 @@
 	// Remap PIC
 	pic_remap();
 
+	init_faults();
+
 	vga_set_color(CYAN, BLACK);
 	for (int i = 0; i < 16; i++)
 	{
@@ -107,5 +110,4 @@
 {
 	init_gdt();
 	init_idt();
-	memset(interrupt_handlers, 0, sizeof(interrupt_handlers));
 }