Fixup exception handlers

Some exception types, specifically `mapgen_exception`, and the more generic `game::error` weren't being caught anywhere (except void main). I add handlers to game_launcher.cpp and playcampaign.cpp as appropriate. It's possible though that the game::error catch will break some things, a little hard to be sure without more testing.