added type attribute to widget struct

The type attribute can be set by creating a function called
"widget_type" which returns char* somewhere in the widget.
widget type is now set as theme callback
Uncrustify code
Merge branch 'feature/widget-type' into develop