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.
Merge pull request #1598 from tshinnic/leak_getuserdir_pythonuic

Fix small leak in pythonui.c python_ui_setup_callback()