Design of base components + Clock

* Code improvement
* Clock implementation
* Tests
* License headers
One should maybe a also add a test to start a large number of clocks running at different frequencies?