Closes #1552.
These could be fired from an async worker thread (for instance, maintenance operations).
Also self-contains the tab options inside the tab control.
Missed this one..
This is important when using dynamic compiling to rapidly iterate. Until we actually split projects out into pieces (like the abstract ruleset project we have talked about) there is no advantage to using internal in the osu! game code.
- Add a delegate whenever we want to register an additional fail condition