Rework of the icon abstraction to allow for the code generation approach
Abstracts the button logic - closes #4

This allows us to reuse the button and derive all buttons from it
Allow creation of custom renderer wihtout chaning the base class name

Instead change only the template for the renderer
Remove model references from the component

The models should be handled in action controllers and not in the components