Reworked the scheduler,
Reworked the scheduler,

- Changed Thread::addToList() and Thread::removeFromList() to maintain
  a circularly linked list.
- This changes makes it possible to greatly simplify the scheduler
  search loop.
- Rewriting the search loop also fixed a bug where a thread with a
  dynamically reduced priority would not stop running. This bug was
  causing the idle thread to not stop running after handling timers.

flit/argon-rtos,flit/argon-rtos