Close IRQ in context switch to avoid abnormal sampling result

This abnormal sampling results from context switch processing in PendSV
being preempted by ktimer IRQ which triggers sampling event periodically.

Fixes #40

Signed-off-by: Jim Huang <jserv@0xlab.org>
Save lr in each context switch and only compare last 4bits in lr

EXC_RETURN[4] in normal context is different
from one in floating point context
Support FPU context handling.

Support FPU registers saving and restoring
when doing context switch.  It would use
EXC_RETURN[4] in lr to identify floating
point context, and save/restore FPU registers
if so.

Fixes #9