[CM3] Add core interrupt masking for easy creation of atomic blocks
[CM3] Add support for Cortex M interrupt masks

FIX: add doxygen documentation to the module
[CM3] Add atomic operation support

Tested with -O0, -O2 and -Os generating correct code with gcc-arm-embedded 2013q2.
note -std=c99 or newer needed
[Stylecheck] Correct style in the CM3 addition