Make inlined functions static

Clang apparently chokes on non-static inline functions,
and they were not used from other files anyway.
Fix typo
Implement -autoInstall option

When -autoInstall is a non-empty string, XBoard will scan the system's
plugin specs directories for UCI and WB protocol, to see if new engines
were added since the last settings save. If so, they are added to the
list of installed engines.
 The variants listed in the plugin-spec files are currently ignored,
but the option is already configured to install engines for all variants.
Ignore color arguments not starting with #

Old settings files from xpm-using version might still contain color
designations like 'white' or 'red'. Since Cairo would interpret these
as black, it is better to ignore them, so the default color is used.
Scale texture bitmaps that are not large enough

Texture bitmaps are now sized up by an integer factor to be at least
as large as the board (if they seem intended for a full XQ board, which is
assumed when they are larger than 256x256) or the square. This necessitated
the textures to be re-initialized in InitDrawingSizes whenever the window
size changes.
Implement engine-defined pieces

When legality testing is off, XBoard now listens to 'piece' commands
to redefine its move generator. After such a piece command is received,
target-square marking also can be used when legality testing is off.
The engine keeps in charge of legality testing, though.
 Only a very basic version of Betza notation is currently understood for
the move description: mode modifiers have to appear in the order mcd,
and gpz modifiers are ignored. Multi-leg moves as in Betza 2.0 is not
implemented at all. A leading i modifier limits the moves to the first
two ranks, which is no good at all. (But XBoard does not keep track of
which pieces have moved, and this at least would work for Pawns in a
FIDE-like setup, in particular Berolina.)
Fix texture scaling
Test legality even when off if engine defined pieces

After reception of a piece command XBoard will mark target squares
even when legality testing is off, and now also will require the lifted
piece to land on a marked square (like when the engine highlighted them
through a highlight command).
 A problem is that this does not work for drops, as drops do not mark
target squares. So drops are always accepted. Which of course is bad
for Pawn drops. But there really is no way yet for an engine to specify
how pieces can be dropped, similar to the 'piece' command.
Allow two Pawns per file in Tori Shogi

When the board has 7 ranks it is assumed to be Tori Shogi, and the
requirement for maximally one Pawn per file is relaxed to two.
Force exactly overlayed texture scaling through filename

A filename suffix -NxM.png on a texture image will cause XBoard to scale
the image as if it were the image of a complete board of N files and M
ranks, to make the square size equal to that of the current board,
and adjust the cutting parameters such that contiguous squares are cut
out of it. (If the current board format is larger than NxM, the remaining
space will be padded with white!)
 If N=M=0, N and M are assumed to correspond to the current board size,
and the bitmap will be scaled to fit the height of the board.
 If no suffix is present, the old cut-and-tile algorithm is used. It will
be assumed the texture bitmap is intended for a single square, unless the
pathname contains a file that starts with "xq", in which case it is assumed
that the file contains a Xiangqi board.
Describe the new texture conventions in manual

The exact rules for how textures are scaled in response to their
filename is described in the manual.
Sort fail lows and fail highs below others

Every more recent line should always float up aove lines that were
indicated to be fail lows or fail highs through ? or ! PV suffixes.
Repair damage done by merging with v4.7.x
Add extra font field to Option struct

Storing the font in the textValue field was too kludgy, as this field
is already heavily used in the various Option types, for storing handles,
or defining colors and callbacks. A 'font' field is now added at the end,
so that it can be optionally initialized in the rare case it is needed.
Control Eval Graph with mouse

Let mousewheel control evalZoom, and right-click toggle between
normal view and differential view ('blunder graph').
Remove debug printf
Configure some themes in XBoard master settings

The -themeNames option is set to contain some themes that could be
defined with the default pieces and textures that come with XBoard.
Prevent crash on specifying non-existent texture XB

By setting the texture width to 0 when the texture could not be loaded,
XBoard will never attempt to draw it.
Configure a size for the Eval Graph

If no size for the Eval Graph window is configured in the master
settings file, the window will pop up as 2x4 pixels.
Fix detection of screen size GTK

A gdk call that can get the screen without there first being a window
mapped to it is used now. This fixes initial sizing of the board window
on a cold start.