[x] get shell fully functional with all tests that do not need wait(), task_vanish(), vanish(), swexn(), thread_fork()
[x] go over which errors cause us to kill a thread, and which errors cause us to panic().
[x] swexn()
[x] implement wait()
[x] implement task_vanish()
[x] implement vanish()
[x] pass remaining 410 scoreboard
[ ] cr0 on context switch
[x] implement thread_fork()
[x] pass all 410user/prog tests (ack, bistromath, chow, needs thr_fork)
[ ] pass all p2 tests
[ ] comments
[ ] Ghost bug
[ ] cleanup FIXME's/TODO's. Either just remove them or fix them if worthwhile.
[ ] add locking to new_pages() remove_pages()
[ ] readline bug
[x] init task
[ ] read code in excrutiating detail
[x] fork_bomb fails stack canary
[x] fork_exit_bomb sometimes fails with inconsistency when trying to remove from parent's active_child_tasks list line 228 Q_REMOVE operation. unable to replicate