Allows for better testability.
# Conflicts: # osu.Game/Beatmaps/Drawables/BeatmapSetDownloader.cs
# Conflicts: # osu.Game/Overlays/BeatmapSet/Buttons/DownloadButton.cs
- Add a download failed event to BeatmapManager - Make DownloadButton aware of all 3 possible download states - Change button appearance based on each state