Make buffers reallocatable

In order to make this possible, all buffers now have to be allocated
indirectly (because a userdata cannot be resized).

In order to make this work, the struct library had to be made aware of
buffers; the simplest way was to merge it into the core library.

All documentation and build system files (including Windows makefiles)
have been updated accordingly.
configure.ac: support automake-1.12

Automake-1.12 requires AM_PROG_AR when building in conjunction with
Libtool, but AM_PROG_AR is a new macro for this release.
* configure.ac (AM_PROG_AR): If it's defined, call it.
configure.ac: find and use ffi/ffi.h

If ffi.h is not found along the compiler default include search
path, then also look in ffi/ffi.h, as used by Mac OS X Lion, at
least.
* configure.ac: Only fail when both ffi.h and ffi/ffi.h can't
be found.
* src/alien/core.c: Use ffi.h from location discovered by
configure.
ffi: check discovered libffi provides newest API used by alien.

* configure.ac (ffi): Check for ffi_closure_alloc entry point, so
that older installed libffi's from before that call was available
are not accepted.
bootstrap: no need to call all the autotools manually

* bootstrap, build-aux/extract-trace, build-aux/options-parser:
Scripts to probe configure.ac and Makefile.am files and dynamically
work out what autotools need to be called.
* bootstrap.conf: Alien-specific configuration for bootstrap.
alien.lua: on darwin modules have file extension .so too.

* src/alien.lua (load_library_helper): Return the error message
on faliure rather than abort.
(load_library.linux): Adjust.
(load_library.darwin): If .dylib load fails, also try with .so
before aborting.
core.c: Now that DARWIN is not defined, predicate on __APPLE__

* src/alien/core.c (DARWIN): Change from this...
(__APPLE__): ...to this.
rockspec: don't clobber environment flags.

* rockspec/alien-0.5.2-1.rockspec (build): It's more hygienic to
put configure flags *after* the configure invocation.
Also, append to any existing CPPFLAGS passed in the build
environment.
configury: convert to non-recursive build for speed and simplicity

Generating a single top-level Makefile is faster (no need to fork
sub-makes) and more hygienic (a single make process knows *all* the
project file dependencies):
* configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects option.
(AC_CONFIG_FILES): Remove all Makefiles, except top-level.
* Makefile.am (SUBDIRS): Remove.
Use include to get contents of subdir Makefile.ams, and set
automake variables centrally.
* build-aux/Makefile.am: New file.
* doc/Makefile.am, samples/Makefile.am, src/Makefile.am,
src/alien/Makefile.am: Convert paths and Automake variables to be
relative to top_srcdir.
configury: no need for config.lt or early libtool generation.

* configure.ac (LT_OUTPUT): No need to recalculate the contents
of objdir and shrext_cmds with an early libtool script... LT_INIT
already runs in the same namespace as the rest of configure, so
they are defined already!
Merge pull request #15 from gvvaughan/pull-request/configury

Pull request/configury
Merge pull request #17 from gvvaughan/pull-request/darwin-support

alien.lua: on darwin modules have file extension .so too.
fix conflicts
Merge pull request #19 from gvvaughan/pull-request/rockspec-hygiene

rockspec: don't clobber environment flags.
configury: correct mismerged conflict resolution in Makefile.ams

* src/alien/Makefile.am: Remove duplicates.
(EXTRA_DIST): Always apprnd for non-recursive builds.
* tests/Makefile.am (check-local): Adjust to run correctly from
$top_builddir.
core.c: let the preprocesser worry about keeping tables in sync.

* src/alien/core.c (ALIEN_SPLICE, ALIEN_STR): New macros for
manipulating preprocessor table entries.
(type_map): Table of relationships between ffi types, byte size
and byte alignment.
(alien_Type, alien_align, alien_sizeof, alien_typenames, ffitypes):
metaprogram these using type_map.
core.c: we need a separate name column for names with spaces in them.

* src/alien/core.c (type_map): Add a string type name column. Adjust
all callers.
(alien_typenames): Use the new name column string.
(ALIEN__STR, ALIEN_STR): Remove, no longer used.
Merge pull request #20 from gvvaughan/pull-request/fix-makefile-mismerge

configury: correct mismerged conflict resolution in Makefile.ams
Merge pull request #21 from gvvaughan/pull-request/preprocessor-tables

Pull request/preprocessor tables