Widgets and WidgetTypes

Introduce concept to make ui elements like the navigation bar configurable and replaceable.