Fix writing of Seirawan960 virginity in FEN

When variant seirawan was played with Fischer castling, only the
castling rights were written, and not the virginity of other pieces.
Now all virgin files are dumped in Shredder-FEN style.
Fix clipping of board GTK

ResizeBoardWindow now measures the with of the window dressing by
brute force, interrogating GTK both for the width of the top-level
window and the board widget, and subtracting the two.
Fix engine-defined variant as startup

Non-standard names were all recognized as 'normal' in InitBackend1().
Now if the -variant argument was not "normal", it is assumed to be an
engine-defined variant if we run with engine.
Reset move entry on stepping through game

A forward or backward step through the game after selecting a from-square
did not erase the latter, so that it became impossible to select a
from-square for an opponent move, as it would be interpreted as the
to-square for the patially entered move. This was especially annoying
with legality testing off, as the legality test there, based on the
square markings, does not reset the entry state either, but waits
until you do click a legal to-square, so that you had to attempt
moving with pieces of the side not to move to get out of this state.
Now stepping through another position will reset the move-entry state
completely, always considering the first click a from-square selection.
Don't preserve setup position on board-size change

Normally the setup command sent by an engine is ignored if the user
already has set up a position, to not render it impossible to do the
latter. But if the setup command orders a different board size nothing
the user has set up can possibly remain valid.
Fix pieceToCharTable of Falcon Chess

This variant was using the Falcon piece, but defining ID F for the
unused Lance instead.
Always accept piece commands for Falcon and Cobra

The wild-card pieces Falcon and Cobra do not have any moves assigned to
them, and XBoard would accept any move for them even when legality
checking is on. So for these pieces it is always better to trust the
engine's piece definition.
Implement Betza j on W,F as skip first square
Implement Betza a modifier

This is pretty complex, and might overload the current primitive two-leg
legality testing when pieces are defined that can reach squares only in
two legs.
Implement Betza g modifier for non-final legs

The g modifier is implemented as a p that turns a rider into the
corresponding leaper when it hops, and vice versa. This is done by
stripping off any existing range indicator, and making the range
infinite by suffixing '0' when the old range was 1 (whether implied
or explicitly written). Except that for sliders/steppers this is done
by atom-name conversion after stripping off the range. Limited range
thus in general turns into leaper (D -> D0, Dn -> D), but with FWK
W3 -> R and R3 -> W, etc.
Implement Betza y modifier

The non-standard modifier 'y' is the spontaneous counterpart of 'g',
changing the range of the atom, and upgrading its directionality.
Implement directional modifiers on KQ, and let y&g upgrade

The Betza y and g modifiers now not only change range, but also upgrade
the directional capabilities of the atom to full non-degenerate 8-fold.
Directional modifiers can now be used in that symmetry too, to maximally
exploit this, and implement 4-fold pieces that make 45-degree turns.
Let oblique continuation legs also use the non-degenerate system.
Implement Betza t modifier for hop-own

The 't' modifier will restrict any form of hopping as specified by
p or g modifiers to friendly pieces. This only works on non-final legs.
Switch to new Betza orth-diag conversion standard

The interconversion from orthogonal to diagonal atoms is now possible
for any 4-way atom, based on specification of an 'in-between' direction,
irrespective of modality. Also take backward out of default continuation
direction-set.
Preserve other Betza mode bits on setting default modality
Implement Betza hr and hr as chiral move sets

To easily separate right- and left-handed moves on oblique atoms
(which needs opposite use of l and r in their multi-leg continuations),
the direction sets hr and hl are added.
Let t on final leg in Betza notation forbid checking

To allow approximate definition of pieces that are too difficult to
describe exactly, we can revoke their capture rights on Kings,
to prevent imagined moves that happen to threaten a King forces the
opponent to evade this imagined check, making most of his moves illegal.
Then the piece can be safely replaced by an upward-compatible one,
leaving rejection of the extra moves to the engine.
Fix infinite loop in cylinder moves
Fix check test with multi-leg moves

The check test after a multi-leg move was still using the same kill
square in the opponent's reply, making it blind to King captures in
a second leg. So far we got away with that because the Shogi multi-leg
pieces also can reach all their potential victims in a single step,
but with engine-defined multi-leg moves there is no guarantee this
will always be the case.
Relocate OS X' LOCALEDIR