Object list improvements.

- Grouped function typedefs in ar_kernel.h.
- Added a field to ar_list_t for the sort predicate.
- Removed the predicate parameter from ar_list_t::add() and made the
  method use the new predicate field instead.
- Added ArThreadList and ArTimerList structs in ar_internal.h that add
  overloaded add and remove methods that simplify list usage. These
  methods are used throughout, as appropriate.
- Initing list predicates in ar_kernel_run() and ar_mutex_create().
- The ready list is now sorted by priority, and the sleeping list is
  sorted by wakeup time.
- Optmized ar_kernel_increment_tick_count() loop to use sorted sleeping
  list.
- Moved _ar_list_node::insertBefore() from ar_thread.cpp to ar_kernel.cpp.
- ar_thread_set_priority() now resorts the ready list.
- Some documentation improvements.