Hinting, OTF, autohinting.

There are a few places where rounding occurs. When loading an OpenType
the hint rectangles applyed by FontForge are done inside the
SCGuessHintInstancesLight() function. When saving to OpenType there is
a chance that hint->width has had a slight rounding error applied, as
such it is not *exactly* 20 or 21 and thus the upper and lower hint is
not applied. And finally, what might be the root of it, inside the
Autohint code there is at times a slight rounding error which might
cause 20 to be 19.9999 for example. So I've added some stuff to the
autohint code to clamp to 21 or 20 if the values are very close. It is
probably best to do that there rather than special case close values
in other parts of the code. Though perhaps loading from opentype needs
some help there still so that there is some tolerence to loading
opentypes with slight rounding errors in them. So those hints can be
resurrected and then improved and saved.

Still need to cleanup, this is a dirty commit with bunches of crap in there
for debugging etc.
cleaned it up, ran into a strange bug with float truncation when I tried
to move some of the clamp() utilitiy function to gutils/ffnumeric.c/h
Merge pull request #1289 from monkeyiq/2014mar/otf-hint-v1

2014mar/otf hint v1
Includes of non-fontforge headers should use angle brackets, not quotes
Remove some free-ing code previously missed, which was causing a crash
Merge pull request #1294 from rrthomas/master

Includes of non-fontforge headers should use angle brackets, not quotes
Implement fontforge_calloc veneer using xzalloc: seems to fix some crashes
search.c: fix warnings and shorten a little code
Allow libgc to instrument pthread_create
gio.h: remove some dead declarations
splineutil2.c: rename a variable called 'bool' to 'flag'
Use proper stdbool.h booleans
Fix crashes with moving splines

This arose because SplinePoint data was being held in glib lists, which
were not scanned by libgc, and so the SplinePoints were assumed to be
garbage, and collected.

The fix should have been to make glib use libgc, but the ability to
change the allocator was broken in glib 2.36:
https://bugzilla.gnome.org/show_bug.cgi?id=701694

Hence, we have to avoid storing data blocks allocated by libgc in glib
data structures.

Hence, use gnulib lists instead.
Merge pull request #1299 from rrthomas/master

Fix various libgc-related crashes
Remove true and false #defines
Abstract creation of gl_lists
Merge pull request #1300 from rrthomas/master

Slight tidy-up