Implemented timer_sleep() function w/o busy wait.

thread.c now contains a thread_sleep(int64_t) function, putting the
thread to sleep until the specified number of ticks have passed.
Sleeping threads are maintained in order in a list, and are
automatically woken when the timer ticks for their last tick.

NOTE: the implementation does not actually work yet.
Finished debugging the thread sleep functionality.

All non-priority alarm tests (alarm-single, alarm-multiple,
alarm-simultaneous, alarm-zero, alarm-negative) pass.