Return NULL, not false

Oh well...
Fix dependencies
Better autofoo
Use a C++ linker on Windows

On Windows we don't care whether or not we link to libstdc++.
Seems to fix build with mingw32 on msys, as reported by Werner.
[Indic] Import ragel-generated Indic machine in git

I don't expect ragel to be creating too much noise in its generated
output, and including this in-tree helps users right now.  We can
revisit this later if it proved to be too much trouble.
Remove unused indic.cc
Minor
[buffer] Towards template'izing different UTF adders
[buffer] Templatize UTF handling

Also move UTF routines into a separate file, to be reused from shapers
that need it.
Add hb_utf_strlen()

Speeds up UTF-8 parsing by calling strlen().
[buffer] Cleanup / optimize UTF-16 parsing a bit
Slightly optimize UTF-8 parsing
Add hb_utf_prev()
[buffer] Save pre/post textual context

To be used for a variety of purposes.  We save up to five characters
in each direction.  No public API changes, everything is taken care
of already.  All clients need to do is to call hb_buffer_add_utf* with
the full text + segment info (or at least some context) instead of
just passing in the segment.

Various operations (hb_buffer_reset, hb_buffer_set_length,
hb_buffer_add*) automatically reset the relevant contexts.
[Arabic] Respect Arabic joining from neighboring context

Now we respect Arabic joining across runs.
[OT] Only insert dottedcircle if at the beginning of paragraph

If the first char in the run is a combining mark, but there is text
before the run, don't insert dottedcircle.

Part of addressing:
https://bugzilla.redhat.com/show_bug.cgi?id=858736
Add AC_CONFIG_MACRODIR
Add pkg.m4 to git repo
Add ax_pthread.m4
Check for pthreads