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.
Changed how the parameter is passed to the thread entry point.

- Instead of saving the thread param as a member of the Thread object,
  it is now set in the initial thread context and passed to
  thread_wrapper() and threadEntry().
- Some comment cleanup.
- Updated todo list.
Timer improvements.

- Added doxygen brief comments to Timer members.
- Implemented dtor to stop the timer.
- Added overloaded start() method that takes a new delay value.
- Added isActive() method.
- Made stop() do nothing if the timer is not active.
- Fixed setDelay()’s check for an active timer.