Ensure global beatmap/ruleset are always mutated from the update thread
Ensure global beatmap/ruleset are always mutated from the update thread

This came up while testing the new realm thread, where `MusicController`
would fall over when `OsuTestScene` changes the global beatmap from an
async load thread (causing a cross-thread realm access).

We don't want to have to schedule every usage of these bindables, so
this seems like a good constraint to put in place.

NeoAdonis/osu,ppy/osu,peppy/osu,NeoAdonis/osu,peppy/osu,ppy/osu,ppy/osu,peppy/osu,NeoAdonis/osu