check_engine_timeout() not called in untimed games
So it turns out we allow engines only 10 seconds to move. If the engine takes longer than this, we decide the engine is broken and the game ends immediately. However, due to a bug, this is only enforced in timed games. check_engine_timeout() is only called from game_clock_tick_cb(), which is not called in games without time limits. Oops. Solution is simple: enforce the timeout from the engine code (chess-engine.vala) rather than relying on the chess clock to do so in user interface code (gnome-chess.vala).