In multithreadead, load the game async.

This way if it takes time to load, things aren't frozen while it's doing
that.  This allows us to show any sort of loading animation or etc. we
want.

Before, it might show a odd looking game select screen while loading, and
then finally go to black.  Now it immediately goes to black.

Fixes #2030.