This commit takes half a step back.
Rather than trying to preserve the beatmap style across selections, it
probably makes more sense to always reset it. It is more likely for
playlists to be dominated by unique beatmap sets anyway. Doing this
already heavily simplifies the process.
Given the above, we can rely on the fact that the user beatmap and
ruleset are selected together, and are thus implicitly validated as of
exiting the style selection screen.
It follows that the only extra validation we need to do is to make sure
that the user's ruleset is valid for the playlist item.
This even makes the mod structure, which is a bit of an unfortunate
scenario, somewhat tenable to look at. The user mods only need to be
validated when either the playlist item or the user ruleset changes. If
we ever move the ruleset selection into the style selection screen, then
we can also remove the latter of the validations with similar reason as
the ruleset.
To be hoenst, this is all quite abusive but I'm not sure how to do it in
any better way. I especially dislike the fact that the screen's
bindables are disabled yet the screen itself is allowed to set their
value because they're `LeasedBindable`s.
But I feel better doing this in a central location like this
`ScreenStack` than in the rooms... Otherwise this specific behaviour
would have to be replicated in the multiplayer screen when it goes
through the same refactoring.