Fixed uthread_create so that it no longer segfaults.  Modified the thread sort function to properly organize threads by priority.  Still need to handle the case in uthread_exit() that the thread exiting is in the middle of the queue and the next thread is of higher priority (potentially looping around to the head).
Modified uthread_yield and uthread_exit to obey priorities and retie pointers correctly.