sched: core: reworked the system scheduling policy

The system is now longer bound to using just 1 scheduling class,
multiple can be used from now on. There will still be a default
scheduling class based on the system configuration.

Signed-off-by: Michel Megens <dev@michelmegens.net>
sched: kconfig: updated the scheduling config

Multiple algorithms can be selected for building from now on, and 1 is
ought to be selected as the default algorithm. All new threads will be
put under this scheduling class. Thread queue's are supposed to ALLWAYS
use the FIFO scheduling class.

Signed-off-by: Michel Megens <dev@michelmegens.net>
sched: core: thread queue's use the FIFO class now

Thread queue's require the usage of the FIFO scheduling class now. This
fairs out the usage of thread queue's in I/O situations (i.e. when they
are used to wait for I/O).

Signed-off-by: Michel Megens <dev@michelmegens.net>
sched: doc: added a FIFO doc module.

Added a documentation module for the FIFO scheduler (sched submodule).
The FIFO scheduler and all its related contents are already added to the
module.

Signed-off-by: Michel Megens <dev@michelmegens.net>
ETA/OS 2.0.0

Signed-off-by: Michel Megens <dev@michelmegens.net>