*DON'T MERGE* Optimize and improve loadgame interface

**WIP**

This is a joint effort between myself and iceiceice (@cbeck88). The goal is to improve some of the exception-based interface involved in game saveing/loading, as well as some minor bugs that result because of it.

So far, the game falling back to menu when declining to load a game from a different version has been fixed, and cases of the two independent struct exceptions (*load_game_canceled_exception* and *illegal_filename_exception*) have been removed.