Several of the interfaces in the propagator package are too complex for simple use-cases. Looking at PropagationObserver, EigenstateObserver and PropagationFilter, each of them exposes only one function. However, we cannot simply replace the interfaces due to lifetime issues; they need to keep their state over several calls.
As a consequence, each of these interface should get an alternative std::function implementation. This could then be used for simple use-cases.
Diff: