Should be called inside Game::update until it returns false,
in order to achieve the given update rate with fixed-timestep updates.
The rate takes fractional frames into account that are left over at the end of one update run.
If the accumulated frame time exceeds max_updates / updates_per_second, the remaining
frame time is discarded in order to avoid a spiral of death.