Detached MVU processor that can be used to dispatch messages from anywhere.
It can be created from functions or subclassed.
This is useful when you want to dispatch messages from outside the view.
The processor can also be used with dependency injection to create a singleton.
This widget exposes the MVU as base class for scenarios where
the MVUBuilder is not suitable. For example, when the widget
has local dependencies that are not part of the model. In this
case, the widget can extend this class and implement the
abstract methods.