ARM Cortex-M: Add support for floating point
This set of patches adds support for working with floating point from within userspace running under CMRX.
Lazy loading of FP context is used to speed up exception processing. FP state is saved only for threads which actually use FP instructions to save stack space.
This implementation would be OK if we didn't have RPC. Fortunately we have it and that makes things a little bit more complicated. We will have to be more involved in the FPU state save/restore: Don't save it onto stack, rather into struct OS_Thread. This will play nicely with RPC and will keep the exception frame on the stack of constant size. It will prohibit easy use of FP in handlers but we can live with this limitation.