Fix small leak in pythonui.c python_ui_setup_callback()

Another use of the recent routine gutils/fsys.c :: getFontForgeUserDir()
that requires a free() of the newly allocated string after use.

Note that there was an unprotected path if a NULL was returned from
getFontForgeUserDir().  The old code would have tried to use the null
pointer.  The fix protects against that, but rather does 'nothing' if
NULL is returned.  Maybe it should blow up horrible bad instead?
Add error checking to patch with stderr display on errors

Each of three points where errors can be detected will now generate an
appropriate error message on stderr.

Also changed to using the asprintf method for dynamically generated strings.
Display errors using LogError in "Warnings" popup window

More investigation found that `LogError()` seemed to fit the need to
present errors to users in a more visible way, rather than using
`fprintf(stderr, ...)`.  `LogError()` will popup a "Warnings" window
if not yet displayed when running with a UI.  When not running under
a UI, it will print to stderr instead.

Also, use of asprintf() under GNU platforms generates a complie
warning, which can be avoided by defining `_GNU_SOURCE`, but which
must be defined before several other includes, and must be defined
as '1' to agree with `Python.h`
Expand formatting buffer for LogError() and friends

Messages to be displayed to the "Warnings" popup window (or on stderr) were
being limitted to 500 chars.  One recent Python error message was at least
half of that.  Messages containing long paths might be truncated, obscuring
the error description.
Try to keep the encoding map for the SplineFont current.
Stop calling GDrawDrawText on zero-length text when drawing pop-up tips.
Merge pull request #1598 from tshinnic/leak_getuserdir_pythonuic

Fix small leak in pythonui.c python_ui_setup_callback()
Merge pull request #1665 from fontforge/popup_linebreaks_1

Stop calling GDrawDrawText on zero-length text when drawing pop-up tips.
Use integer coordinates
Handle case-insensitive file systems
Merge pull request #1663 from fontforge/issue_1661_exploration_1

Try to keep the encoding map for the SplineFont current.
ufo: fix kerning pairs output
Merge pull request #1666 from adrientetar/ufov2-kern

ufo: fix kerning pairs output
Remove unused no_windowing_ui code fontforge/parsettfbmf.c

Two consecutive else if() statements test the same condition.  The
second true clause is never executed (since 2007!).  Reviewing the
blame listing for chain of changes did not reveal intent behind the
code in the second unused clause.

Testing with and without scripting confirms the second clause is
never executed.

This change removes the second clause, for five unused lines of code.
Fix a flipped descender value.
Fix a const warning.
Merge pull request #1667 from tshinnic/parsettfbmf_unused_2nd_clause

Remove unused no_windowing_ui code fontforge/parsettfbmf.c
Merge pull request #1668 from fontforge/ufo_ascender_flip_2

Fix a flipped descender value.
Merge pull request #1669 from fontforge/ufo_fix_const_warning_1

Fix a const warning in ufo.c.