kernel: Rework low level timer interface

Signed-off-by: Pawel Dziepak <pdziepak@quarnos.org>
kernel: Add irq_controller device type and base device node

Signed-off-by: Pawel Dziepak <pdziepak@quarnos.org>
kernel: Add assertion against double enqueueing of timer

Signed-off-by: Pawel Dziepak <pdziepak@quarnos.org>
Switch to C11 and clang

Signed-off-by: Pawel Dziepak <pdziepak@quarnos.org>