Use BDW garbage collector

tl;dr: thousands of lines of code removed; don't use free any more!

This commit replaces explicit memory management with the BDW GC,
removing thousands of lines of code, and probably many bugs (some were
found while preparing the patch).

BDW is a mature, widely-used and highly-ported conservative GC (perhaps
the only one that deserves that title). It runs on all the OSes /
runtimes we support (specifically including Mac OS X and Mingwin). It
supports threaded programs.

The only change to the code that it requires is calling one function,
GC_INIT; but of course once we have a garbage collector free is a no-op,
so destructor functions that only free memory have been removed.

Rather than use libgc's own veneers for malloc, realloc & free, #defines
in fontforge-config.h are used to rename those symbols. This means that
libgc is also used for allocation in gnulib. This is a technique
previously applied in GNU Zile:
http://git.savannah.gnu.org/cgit/zile.git

However, unlike Zile, fontforge is not heavily dependent on gnulib, so
it could use the official GC_* functions or macros if preferred. The
advantage of the present scheme, other than the use of gnulib, is that
programmers need not learn new names.

glib is not affected by the use of libgc: g_free MUST still be called.
glib's allocator could be replaced by libgc if desired. However, it is
important not to g_free memory allocated by libgc; some code paths were
fixed to prevent this. It's bad practice in any case to use g_free to
free memory allocated by the system malloc, as either could in principle
be changed.
Add duplicate config.h to placate gnulib
scripting.c: fix typos in argument number checks
Add gnulib xalloc module, and replace chunkalloc with X[ZC]ALLOC
configure.ac: remove redundant dlopen detection
Remove vestiges of VMS support
Remove unused usprintf.c
Use gnulib's getline module for platforms lacking getline
Use gnulib's iconv module to paper over some cracks, and remove some out-of-date workarounds