Attempt to switch U.F.O. output so as to use libxml2.
Merge branch 'master' into ufo_libxml2_1
Added issurrogate() macro.
Need to check for Unicode surrogates, which cannot be converted to UTF8.

Otherwise utf8_idpb() returns NULL and crash occurs.
Zero-terminate where necessary.
Fix a few things.
Fix entity names.
More names and indentation.
Fix hierarchy.
Merge branch 'master' into ufo_libxml2_1
Fix an infinite loop that would never run anyway.
Implement xmlSetPropPrintf and reduce code as possible.
Remove now-unused code.
Fix off-curve point placement.
Fix hint placement.
Fix hint hierarchy.
Update comments, remove cancelled TODO items, remove dead code.
Merge pull request #1408 from fontforge/ufo_libxml2_1

Switch to libxml2 for output of glifs and plists in the U.F.O. driver.
Win32: Discard mouse move event if pos hasn't changed. Fixes #1390

Full credit for this fix goes to 'unofficial-fontforge-cygwin'
for this patch: See http://www.geocities.jp/meir000/fontforge/ -
in particular http://www.geocities.jp/meir000/fontforge/fontforge-20140104-cygwin.patch.txt.

For some reason, mouse move events are fired, even if the mouse
hasn't moved. This caused tooltips to disappear immediately as
they were shown.
Handle scroll wheel usage properly in the menus.