scheduler: add thread support

We now support 16 threads per process.

Signed-off-by: Levente Kurusa <levex@linux.com>
scheduler, hal: add a new schedule_noirq() function

This function allows the user to forcibly schedule awayy

Signed-off-by: Levente Kurusa <levex@linux.com>
mm: add a new memset16 function

Signed-off-by: Levente Kurusa <levex@linux.com>
mutex: add mutex implementation

Signed-off-by: Levente Kurusa <levex@linux.com>
display: add a new private field

This field will store the stuff that the display uses

Signed-off-by: Levente Kurusa <levex@linux.com>
textmode: add a new private field

Signed-off-by: Levente Kurusa <levex@linux.com>
scheduler: fix scheduler_noirq() to only schedule if tasking

Signed-off-by: Levente Kurusa <levex@linux.com>
textmode: add scrolling and mutex protection for update

Signed-off-by: Levente Kurusa <levex@linux.com>
tty: add mutex protection

Signed-off-by: Levente Kurusa <levex@linux.com>