The panels' content was flying around and felt really shocking. This fixes elements in place to provide a better experience.
- Add a download failed event to BeatmapManager - Make DownloadButton aware of all 3 possible download states - Change button appearance based on each state
Also decouples the bindable at SongSelect, where it is debounced in line with the carousel being updated.
Allows it to integrate better with existing buttons, like HeaderButton.