Add HAL unit tests
Add simple unit test runtime
this include an abstract class `abstract_test`, every unit test has to inherit
from this class. The unit test has to run in a `test_suite` class.
Also add unit tests for the HAL.
Merge branch 'topic/unit_testing' into develop