[IO] rework dprintf to take a debug level, defined in DEBUGLEVEL

printf at the moment just calls dprintf, but soon will become
a seperate I/O queue.
diff --git a/kernel/thread.c b/kernel/thread.c
index 6de7d6b..fc9d9ca 100644
--- a/kernel/thread.c
+++ b/kernel/thread.c
@@ -156,7 +156,7 @@
 {
 	thread_t *t = (thread_t *)thread;
 
-//	dprintf("thread_cleanup_dpc: thread %p (%s)\n", t, t->name);
+//	dprintf(SPEW, "thread_cleanup_dpc: thread %p (%s)\n", t, t->name);
 
 #if THREAD_CHECKS
 	ASSERT(t->state == THREAD_DEATH);
@@ -238,7 +238,7 @@
 #endif
 
 	int next_queue = HIGHEST_PRIORITY - __builtin_clz(run_queue_bitmap) - (32 - NUM_PRIORITIES);
-//	dprintf("bitmap 0x%x, next %d\n", run_queue_bitmap, next_queue);
+	//dprintf(SPEW, "bitmap 0x%x, next %d\n", run_queue_bitmap, next_queue);
 
 	newthread = list_remove_head_type(&run_queue[next_queue], thread_t, queue_node);
 
@@ -451,11 +451,11 @@
 
 void dump_thread(thread_t *t)
 {
-	dprintf("dump_thread: t %p (%s)\n", t, t->name);
-	dprintf("\tstate %d, priority %d, remaining quantum %d, critical section %d\n", t->state, t->priority, t->remaining_quantum, t->saved_critical_section_count);
-	dprintf("\tstack %p, stack_size %zd\n", t->stack, t->stack_size);
-	dprintf("\tentry %p, arg %p\n", t->entry, t->arg);
-	dprintf("\twait queue %p, wait queue ret %d\n", t->blocking_wait_queue, t->wait_queue_block_ret);
+	dprintf(INFO, "dump_thread: t %p (%s)\n", t, t->name);
+	dprintf(INFO, "\tstate %d, priority %d, remaining quantum %d, critical section %d\n", t->state, t->priority, t->remaining_quantum, t->saved_critical_section_count);
+	dprintf(INFO, "\tstack %p, stack_size %zd\n", t->stack, t->stack_size);
+	dprintf(INFO, "\tentry %p, arg %p\n", t->entry, t->arg);
+	dprintf(INFO, "\twait queue %p, wait queue ret %d\n", t->blocking_wait_queue, t->wait_queue_block_ret);
 }
 
 void dump_all_threads(void)