Moved exception handling to main(). Made platform-neutral the message box shower.
Added a logger.
Added a class dedicated to function time measurement.
Added a session counter, which is incremented on each SetupGameLevel call.
Added multithreaded support through async tasks whose results are reaped in PlayLoop as long as they belong to the correct session.