The new background now briefly fades in. The reason we didn't do this to
date is that there could be a perceived decrease in brightness as the old
and new background transition through opacity.
But a quick fade in, it doesn't seem to cause any visual artifacting.
I've also added a scale effect because it felt quite nice. Willing to
pull that if anyone has an issue with it, but it's a step in the
direction of "adding more motion to song select", which is still an area
I see lacking greatly – even compared to stable.
Fixes the main part of https://github.com/ppy/osu/issues/31144.
Support for selecting a video will come later.
Making this work was an absolutely awful time full of dealing with
delightfully kooky issues, and yielded in a very weird-shaped
contraption. There is at least one issue remaining wherein storyboard
videos do not actually display until the track is started in editor, but
that is 99% a framework issue and I do not currently have the mental
fortitude to diagnose further.
If the API login (and thus user set) completed between `load` and
`LoadComplete`, the re-fetch on user change would not yet be hooked up,
causing an incorrect default background to be used instead.
Of note, moving this out of async load doesn't really affect load
performance as the bulk of the load operation is already scheduled and
`LoadComponentAsync`ed anyway