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.
Also cleans up logic significantly.
Adds async loading support and cleans up the code quite a bit in the process.
Also sets better defaults.
Reduces the delay before the main menu appears, but also synchronises the full main menu appearance animation with the logo's apperance.
There should only ever be one osu! logo. It is now passed around between screens in a superfluous manner.
Fixes #1208
# Conflicts: # osu-framework