revamped logging to not fork a separate logging thread

I have no idea why I originally split off a separate logging
thread.  I think I must have just been confused.  So weird.
revamped all game io to handle exceptions properly

Should now always give some kind of report at the end of the
game. Disconnect by one side is handled gracefully and
reported as a win for the other side.