add exception handlers for "game::error" in playcampaign.cpp

I also add one for mapgen_exception, but this doesn't make so much
difference. It seems to be a big problem that we don't catch
game::error anywhere, I observed a similar bug being caused by
game::error being thrown directly by a button when it couldn't
find its image. The report was that it caused the game to crash
to desktop immediately (I think it was caught only in void main.)
fixup exception handler for replays

For some reason I had apparently set it up to skip writing errors
to stderr unless it was a unit test...
add game::error handler to game_launcher.cpp, also mapgen errors

Put the same handlers I added to playcampaign also for
game_launcher. It can't be good that we weren't catching
game::error anywhere...
button ctor throws game::error when it can't find its image

This partially reverts an earlier commit
28fe7e44

instead of changing the exception type to game::game_error,
(which I assume is meant for in-game errors?), we go back to
game::error which is now handled properly in playcampaign.cpp
and game_launcher.cpp

Tested that this does not reintroduce bug 22611.
don't catch game::error in playcampaign.cpp
use standard loggers instead of std::cerr
Merge pull request #304 from cbeck88/fixup_exception_handlers

Fixup exception handlers