Fixed Priority Scheduler for Tock
This scheduler assigns priority to processes based on their order in the
PROCESSES array, and runs the highest priority process available at any
point in time. Kernel tasks (bottom half interrupt handling / deferred call
handling) always take priority over userspace processes.
Notably, there is no need to enforce timeslices, as it is impossible for a process running to not be the highest priority process at any point while it is running. The only way for a process to longer be the highest priority is for an interrupt to occur, which will cause the process to stop running.