Merge branch 'timestep_order' into 'master'
Timestep order This is my last batch of changes regarding time integration. - Additional checks here and there that the particles are synchronized. Especially gpart. - Re-arranged the time-step sequence and simplified the logic in engine_step(). - Moved the decision of repartitioning from the main() to engine_step(). The re-arrangement of the time-step sequence allows for perfect energy conservation even when we rebuild, repartition or dump snapshots. Previously that was not the case as a spurious drift had to be introduced. See merge request !314