feat(engine): HistoryLevel-SPI

- add HistoryLevel SPI
- implement default, built-in HistoryLevels
- add possibility to implement custom history levels

The HistoryLevel SPI allows controlling which history events are
produced. Users can now fine-tune more easily what kind of data is
produced.

related to #CAM-2724, #CAM-1329