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`
Native script AddXHint width arg fix; error double free fix

Coverity pointed out that fontforge/scripting.c _AddHint() was missing
setting variable 'width' in one place.  This looks to be a simple typo.

Testing before fix generated error message "AddHHint: Bad hint width"
as the uninitialized value of 'width' was -18032.  Testing after the
fix saw no error message.  The line of code was:
>       AddHHint(542.5,10.25);

While testing under gdb a double free was detected while cleaning up
after the native script error was declared.  Call path
      ScriptError()->traceback()->calldatafree()
was freeing all string arguments in all Context's on the stack.  But
then ProcessNativeScript() at end *also* wanted to free iits args on
the top-level Context which it set with all strings.  Changed
calldatafree() to set pointers to NULL after it frees them.
Add coverity +kill annotation to scripting.c traceback()

Coverity was showing a number of false positives because it did not
understand that in the context of scripting.c calling ScriptError()
effectively terminated the calling routine, just like a return or
an abort().

Coverity would report uninitialized variables or out-of-bounds reads
or writes and the like, as it analysed code following a call to
ScriptError().  For example, in fontforge/scripting.c :: bSqrt() it
would report that variable 'val' could be uninitialized in the call
to sqrt().

There is a mechanism to instruct Coverity that a routine should be
considered as terminating processing.  Adding a "function annotation"
before the function gives it the information that should prevent it
from being so confused.

This change adds such an annotation to routine traceback(), which is
the actual routine that uses the quite rude longjmp() to terminate
normal processing.
>         /* coverity[+kill] */
>         static void traceback(Context *c) {

We should inspect the _next_ Coverity report and see if this clears
up a number of the false reports.  If not it may be that this same
function annotation needs to be added to all the _using_ routines,
such as ScriptError().
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.
Coverity leak scripting.c SetGlyphName SetUnicodeValue

Any call to SetUnicodeValue() would leak the glyph name.

For glyphs with comments, e.g.
    Comment: "This glyph worked fine on i?86 but failed ..."
every call to native scripting SetGlyphName() or SetUnicodeValue()
would result a leak of the old comment.

Example native source:
        glyphname = "exclam";
        Select( glyphname );
        SetGlyphName("AAA", 0);
        SetUnicodeValue(65, 0);
Merge pull request #1657 from tshinnic/coverity_leak_scripting_setglyphname

Coverity leak scripting.c SetGlyphName SetUnicodeValue
Merge pull request #1656 from tshinnic/coverity_kill_script_traceback

Add coverity +kill annotation to scripting.c traceback()
Merge pull request #1655 from tshinnic/script_native_AddXHint_width

Native script AddXHint width arg fix; error double free fix
Fix a missing reset of the file position in _readencstring as reported by Norbert Janssen.
sfd: stop outputting trailing whitespaces or double-spaces
Merge pull request #1659 from fontforge/readencstring_missing_fseek_1

Stop corrupting file position on a failed encoding string parse.
This allows for the input and output of foreign data from U. F. O..
travis osx: first shot at a bundle build on Travis CI.

Bringing in the new bundle-homebrew script, the FontForge from the
bundle should run but there are many refinements needed and there are
still things missing or which do not work but are working on the
macports build.
Bring in the dylibbundler
grr, two bundle scripts at the moment
...
.......
try to get full log from travis ci.