Support event bindings (e.g. click on a button).
Support for controllers.

This adds the notion of controller to the mvvm implementation. Here a controller
is a function that can manipulate the data model but that is not part of the
data model itself.

It is possible to add controllers to mvvm and these controllers become available
in all scopes to deal with data of a given type.
Add a simple colorviewer to baseui.
Add a generic listviewer to baseui.