Design of base components + Clock

* Code improvement
* Clock implementation
* Tests
* License headers
Not sure of this test as the channel id is an internal representation. The most important thing is to ensure a subscriber will receive the appropriate messages.