Add variable `priority` to struct `process`

The new `priority` variable can be used by interrupting function `Schedule` when
choosing which thread should run next. `priority` is an enumerator that can have
values of LAZY, LOW, NORMAL or HIGH. LAZY is used instead of IDLE because IDLE
is already defined and in use elsewhere.
Rewrite process scheduler and backing functions

Phoenix launches and runs all test programs sucessfully. Rewrite is a
considerable simplification of the earlier scheduler implementation. Scheduler
supports setting priority levels, at least in theory, but no threads have been
created with HIGH or LOW status, so efficacy of priority levels cannot be
proved.

Conceptual documentation for the new functions for interacting with the thread
ringbuffer should be added.

Also make some text obey an 80 char width limit
Remove ineffectual code

Remove code that has no apparent effect. All tests programs run identically
whether code is present or not.
Add documentation for xrndbuff.h

Add documentation which gives a conceptual framework for thinking about the
functions declared in `xrndbuff.h`.