Removes storage of `selectedBeatmap` that was referenced through
multiple class-level methods.
To expound a bit, this structure felt better (or otherwise passing
`APIBeatmap` through methods) alongside removal of the `#nullable
disable`, otherwise each method would check `selectedBeatmap != null`.
- Changed copy of the multiplayer spectator activity to be
ruleset-agnostic, thus I guess closing
https://github.com/ppy/osu/issues/32307 maybe? There is still the
ruleset icon in discord RPC but that one is taken from the game-global
ruleset so it's a bit more involved to fix.
- Added new activities for daily challenge screens, therefore partially
addressing https://github.com/ppy/osu/discussions/29200. I didn't add
skin editor because (a) it's not easy to make work because skin editor
isn't a screen and (b) I'm not sure we want that to begin with? Kind
of a weird one.
I've tested backwards compatibility; old server will raise exceptions
that then will be logged as unobserved by the clients when receiving the
new statuses, and an old client, when given one of the new statuses by a
new server, seems to completely ignore it. Seems pretty acceptable to
me.