Make sizing more robust (GTK)
On sizing we now do not immediately replace the buffer canvas, but set
a flag in the Graph Option to indicate the canvas is invalid. Instead
of taking the canvas handle from a global variable (csBoardWindow) we
now obtain it in every drawing call from a function, which first tests
if the canvas is still valid. If it is not, we replace it by one of
the size specified in the Option (which was obtained from the window
size the moment the flag was set).
The GraphExpose requests now bypass the general GraphEventProc, by
calling the drawing of the exposed area (which was relocated to a
separate function) directly. This avoids the overhead of checking for
resizing through requesting the window geometry.