Copy code from fea_ParseGDEFTable().
Since this code was already in this same file, no changes to copyright
or licensing are necessary.  Since this code was written by George Williams,
nobody else can claim copyright on it.
Adjust George's code to work in its new location, fix formatting, give
variable a more informative name.
Merge branch 'master' into ligature_caret
resolve merge conflict
Conflicts:
	fontforge/featurefile.c
Merge pull request #578 from mskala/ligature_caret

Ligature caret in FEA syntax changes
Split some UI code from collabclient.c and python.c

The python/pythonui split that existed before now has the ability to
augment the methods offered by the python objects if we are building
with a GUI. See pythonui.c/PythonUI_Init which calls
copyUIMethodsToBaseTable() to add methods to a python object only if
we are building with a GUI.

The majority of the collab code is now moved to collabclientui.c. This
should avoid issues with "import"ing fontforge from a command line
python script.

There are times where some of the code in python.c needs to call
collab code to work correctly in a collab session. Because python.c
can not directly call into pythonui.c there are a few callbacks
defined in python.c. See for example
pyFF_maybeCallCVPreserveState_Func_t and its getter
get_pyFF_maybeCallCVPreserveState_Func(). In python.c the default
callback for pyFF_maybeCallCVPreserveState_Func_t is set to a function
that does nothing. In pythonui.c that callback is set to a function
that really does something if need be. This way the callback can still
be run from the layer code in a collab session but will not interfere
with a non GUI build because the empty function will instead be run.
Merge pull request #579 from monkeyiq/2013may/nonui-and-ui

Split some UI code from collabclient.c and python.c
Don't crash when moving bezier control points in collab mode.

Collab movement is working again. It was snagged on the fact that there
are two fontview lists being kept, and the one in the fontviewbase wasn't
seeing graphical fontviews (so the fvfind function couldn't find those).

So, the FontViewFind() functions are moved again back to fontview.c.
I would like them to be on the base fontview but there are two fv_list
lists one in each fontview file (fontview.c and fontviewbase.c). I
tried to keep those lists in sync but failed on some edge cases. IMHO
it would be better to instead move to using glib2 double linked lists
for maintianing the list of active fontviews in fontviewbase.c
possibly with some downcasting functions so that fontview.c can
downcast if it wants.

I tested the FontViewFind() shuffle with a non x build too. Just using
python from the command line and
import fontforge
Merge pull request #580 from monkeyiq/2013may/fontview-lists-and-collab-bezier-points

Don't crash when moving bezier control points in collab mode.
make use of libspiro if it has true/false reply values

Test for, and use several patched added by Shriramana Sharma, 2013-05-29
which return pass or fail if there is a new libspiro available with this.