IGameplayClock
The implementation of this requires a bit of a special case for 0, so makes sense to implement in a central place.
FrameStableClock
MasterGameplayClockContainer
NonGameplayAdjustments
GameplayAdjustments
TrueGameplayRate
FrameStabilityContainer
IsCatchingUp
No one should ever derive from this class. It is already too complex.
setClock
GameplayClock
The parent clock will not unpause until WaitingForFrames becomes false, so I've moved the set of that before we start to propagate its values across. Doesn't fix any visible issue but should make propagation one game loop faster.