Added a linker set for statically registering idle tasks for the scheduler

Idle tasks are only executed when CPU is otherwise idling. There is no timing
quarantee for idle tasks nor atomic execution. Idle task can be interrupted at any
point and might be executed many times in a short period of time but never twice during
the idling time.
Adding kmalloc fragmentation percentage calculation
Merge remote-tracking branch 'origin/idle_tasks'

s merge is necessary,
Merge branch 'kmstat'