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.