Multithreading init

Multithreading init so that the engine can get ready while the game
loads all registration... If we encounter any issues with gameinit
requireing engine init, we can expand with postengineinit