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/timer.c b/src/kernel/timer.c
index 8ed0be8..be177f9 100644
--- a/src/kernel/timer.c
+++ b/src/kernel/timer.c
@@ -9,8 +9,11 @@
 
 static void timer_cb(struct registers *regs)
 {
-	// Preemptive multitasking!
-	switch_task();
+	if (tasks_initialized)
+	{
+		// Preemptive multitasking!
+		switch_task();
+	}
 }
 
 void init_timer(uint hz)