Engine: do not kill until pid is closed

"Note that on platforms where GPid must be explicitly closed (see
g_spawn_close_pid()) pid must not be closed while the source is still
active.
Game: Stop should be no-op if already stopped

We're stopping multiple times in a row.  game_end_cb is followed by
engine_stopped_cb, causing "Oops! Something has gone wrong!"

https://bugzilla.gnome.org/show_bug.cgi?id=710028
Fix CECP checkmate processing

This was just flatly wrong. It's not an error to say the game is over.
engines: print unknown commands at debug level

The UCI parser was treating unknown commands as warnings, and the CECP
parser was ignoring them completely. In reality these are usually
benign, but could be a real problem.
Don't declare error immediately after engine quits

Chill out a moment or two. Don't lose the race between the ChildWatch
and the IOWatch.

https://bugzilla.gnome.org/show_bug.cgi?id=710028