groveller: call the C compiler with -I /usr/local/include/ on FreeBSD

On FreeBSD, GCC only looks in directories of the base
system (/usr/include). We need to manually add /usr/local/include if we want
to be able to bind libraries installed by packages or ports.
doc: Update gendocs.sh's URL.
Special-case arm architectures.
Initial port to MKCL
cffi-manual: fix foreign-string-to-lisp info entry
doc: generate an info directory file
grovel: use the right printf specification for bitfields

The BITFIELD grovel syntax always used %i to print the foreign values. But
when the base type is larger than an int, the resulting values will be
incorrect.

We introduce the FOREIGN-TYPE-TO-PRINTF-SPECIFICATION function which returns a
printf string containing a single format specification for a foreign type, and
use it in the BITFIELD grovel syntax.
grovel: include <inttypes.h>

This header defines the PRI{fmt}{type} printf format specifiers used by
foreign-type-to-printf-specification.
Fix Solaris compilation options.

The "-fPIC" flag will always be necessary when using GCC-derived compilers as I understand it.

Additionally, Solaris compilation options now unconditionally tries a
64bit build.  Contemporary Solaris (since Solaris 10), are hybrid
32/64 bit environments where "uname -m" reports "i86pc".  Whether one
wants the 32 or 64 bit version of the libraries depends on the type of
the Lisp implementation doing the loading, which is currently not
available in the environment in which make(1) is executing.
cffi-abcl-20121028a: changes to cffi_0.10.7.1 Quicklisp 2012-10-13 for ABCL.

The interactive restart when reloading callbacks is no longer needed.

A callable function pointer is now returned by CALLBACK and
GET-CALLBACK, which wasn't the case previously.

Now down to 25 failing tests!

Callbacks "automacro-ly" now get a translation layer to convert back
from native types to ones which ABCL expects.  This translation is
currently a work in progress, as not all cases are covered correctly.

(Stas Boukarev) MAKE-FUNCTION-POINTER typo.

Refactored to remove compile warnings about MAKE-IMMEDIATE-OBJECT.

CFFI-SYS::%LOAD-FOREIGN-LIBRARY tries harder to figure out which
library to load.

Docstrings added.
Arguments to CONCATENATE need to be sequences.
Restore default type class name

In defcstruct, there was a line, removed in be6267709f, that set a
default type class name by appending "-TCLASS".  Without this line,
the class will be directly FOREIGN-STRUCT-TYPE instead of a subclass.
This is acceptable if the translate methods are not going to be
redefined, but if they are, any change will apply to all instances
(including instances of subclasses of other structures, which may call
these with call-next-method).  In fact, there is a check in
define-translation-method to prevent redefinition with that macro, but
of course a defmethod would be just as bad.

While in principal one can specify the :class argument, this isn't
always possible, for example, if the structure was made by groveling.
Even so, it is a bad idea to make a default which has the potential
for this kind of harm.

This fix now permits GSLL to compile and load correctly.
foreign-free, sbcl: add (optimize speed) declaration, which avoids
consing aliens.
FOREIGN-STRING-ALLOC: don't call NULL-TERMINATOR-LEN twice
Merge remote-tracking branch 'upstream/master'