Task #3418: Infrastructure improvements for modular simulator
Implement modular checkpointing for modular simulator
In GROMACS 2020, checkpointing modularization is approximated by passing around a t_state object for writing, and restoring using the global state created by the runner. Moving forward, the checkpointing module should not need any knowledge about the details of the checkpointed data.
A possible design to achieve this is to simplify the checkpointing object to serialize and deserialize a key-value tree. In checkpoint reading, this tree can then be passed to the constructor / builder of the modules to restore a previous state. In checkpoint writing, the checkpointing object passes the tree to its clients, allowing them to write arbitrary data needed to restore themselves to their current state.