Invert dependency between system and propagator
Description
Invert the dependency between system_t and propagator_t. Now system_t knows about algorithms, but not about specific types of algorithms. On the other hand, propagator_t now has access to system_t, so it can perform operations that are propagator specific itself.