The only exception to the rule here was "when screen isn't active apply
without debounce" but I'm not sure we want this. It would cause a
stutter on returning to song select and I'm not even sure this is a
common scenario.
I'd rather remove it and see if someone finds an actual case where this
is an issue.
This reverts a portion of https://github.com/ppy/osu/pull/9539.
The rearrangement in `SongSelect` is required to get the initial filter
into `BeatmapCarousel` (and avoid the `FilterChanged` event firing,
causing a delayed/scheduled filter application).
Turns out that items could be in an order that isn't the same as how
things look on the carousel, so this change ensures that for testing
purposes they are sorted by Y position.
Also uses the `CarouselItem.Visible` flag to ensure that we don't have
to wait for drawable fade transitions after a filter operation.
From a user's perspective, changing a sort / order mode shouldn't filter
away results, but we were doing this.
In terms of UX expectations, in stable this kind of scenario would
results in a group being added to the end of son select with "Not
ranked" or "Unknown". I think we should aim to match this eventually.
This covers the fail case of removing and adding items (see
https://github.com/ppy/osu/issues/21926) but also covers the proposed
forward implementation, which now considers `DateAdded` and `OnlineID`.