Use CPPUmock for critical sections.

This allows for easier testing, since we can put in a test that we expect critical sections macro to be called (see the new tests for example).

This adds the possibility to test for critical sections in other functions, example : 

```cpp
TEST(SomeTestGroup, SomeTest)
{
    criticalsection_use_capturing_mock();
    mock().expectOneCall("CPU_CRITICAL_ENTER");
    mock().expectOneCall("CPU_CRITICAL_EXIT");

    foo(); // foo should contain atomic code.

    mock().checkExpectations();
    mock.clear();
}
```