Design of base components + Clock

* Code improvement
* Clock implementation
* Tests
* License headers
The default behavior of become replaces the receive method, so this code is not called anymore after a become. We have to find an efficient solution.