This paves the way for the framework code quality change
(https://github.com/ppy/osu-framework/pull/4873) which stops exposing
the constructor.
Most of the restructuring here is required to give `PreviewTrackManager`
an adjustable target to apply the global mute.
The triangles intro tracks video time, which is not adjusted based on
the game's playback rate (ie. it runs in realtime even for headless
tests).
Maybe we want to make the triangles video adjust its rate along with
tests?