Allows for better testability.
Due to faulty debounce fire logic, a web request would always fire with a single character search, followed by the real search. This caused unwanted delays and display weirdness.
Closes #4310.
Also cleans up some weird code
# Conflicts: # osu.Game/Beatmaps/RankStatus.cs # osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs # osu.Game/Overlays/Direct/FilterControl.cs # osu.Game/Overlays/DirectOverlay.cs
Also moves delete and action logic to a shared implementation
reverted change and instead check `DeletePending` when retrieving existing online IDs
Resolves #1925