Small commit fixing a bug (at least I'm pretty sure I am): wasn't
handling locking correctly before, in that I wasn't handling it at all.
Think it should be good now, but honestly I haven't very rigorously
tested it.
Refactored to use multiple ready queues, one per priority. Still seems
to be working, but again, not very thorough testing.
Merge branch 'master' of https://github.com/regehr/advanced_os_class