This required using the new Steps::GetTimingData function and the allowEmpty
parameter to TimingData::TidyUpData when appropriate, as well as clearing the
TimingData to remove step timing rather than coping the song timing over it.
Fixes some odd editor behavior when changing song timing, and is overall a
slightly less hacky way of doing things.
[Course.cpp] HasTimedMods() now actually checks for timed mods (technically non-global) instead of being a clone of HasMods()
[Player.cpp] add MAX_HOLD_LIFE/[Player] MaxHoldLife metric
[ScreenGameplay] looking into places to put loading of replay data, perhaps?
[elsewhere] lots of cleanup, and I'm sure there's lots more to be done.
add a todo to ProductivityHelpers.