Fixed step runner
Create runner-derived FixedStepRunner, that periodically calls fixed_next_round.
The phase of each runner is not synced, so I made Driver a fixed runner, and call all functions which need to run at fixed tick rate from there. This fits nicely into the purpose of the driver anyway.
Refactor replication system, to be a library that exposes a function called by driver.