Implement basic priority scheduling policy.
Implement thread preemption at thread_unblock.

Add priority calculation involving cpu load and avg load
Merge branch 'priority_sch' into dev
Implement priority donation for locks.
Add fix for priority-sema test
Fix thread_revert_priority
Fix priority-donate-sema test

Changed the semaphore wait list sorting from a sort on insert
to a sort on sema-up. This previously caused an issue if
another thread modified a wait listed semaphores priority.
Fix priority-condvar test

Added priority to each semaphore that represents the highest
priority in its waiting list.

Added conditional variable sorting of its semaphore list before
choosing a semaphore to up.
Priority Scheduler complete - Merge into dev
Changed thread_sleep for better efficiency.
Disable interrupts during priority changes to avoid race conditions
Add first attempt at argument passing
Bug checking
Add completed parse_args() to process.c
Merge branch 'p2_args' into project_2
Add functions for intr_frame stack manipulation

Clean up parse_args to use the new functions
Implement write and exit syscalls. Fix argument passing (I think)
Add separation of file name from args for thread_name.
Finish argument passing
Merge branch 'p2_syscall' into dev
Implement user pointer address checking.

All args tests pass
All sc- tests pass