fix: thread exiting does not call sched_task_exit
Implement hwtimer with SysTick [init, set, now, callback]
Implement hwtimer with SysTick [enable/disable interrupt, unset]
Cleanup: stm32f407vgt6/stm32f4-hwtimer_arch.c
Move irq functions to irq.c
Add dependency to 'irq.h' in 'syscalls.c'
Add PendSV function
Move context switch codes to 'cpu.c'
Add PendSV handler
Can wakeup from hwtimer isr
Change hwtimer implementation to timer 2
Implement sleep mode
Cleanup stm32f407vgt6-lpm.c