Draft: klipper: port away from dataengine
The klipper backend looks very tangled. This tries to make HistoryModel
become the only backend because klipper saves all data in a model. A proxy model class is created to utilize the shared backend and provide data for the widget.
Draft because it's not finished, just want to make sure the direction is right.