changed some things

some odd anomalies in original code...

now ready_list is always sorted in increasing order by priority.  schedule pulls threads off the back.  yield, unblock, etc. all put the thread in sorted order by priority.  thread_tick only needs to check if the back of the list (highest priority) is higher than current priority.  it also still does the round_robin right now (max CPU time even if highest priority)