Set up CFFI-grovel definitions for libffi

Define foreign constants and types by imitation of iolib definitions.
Untested.
Define package, all grovel types; load libffi; define structs

Define the :fsbv package.  Define types that are defined in the
library.  Define structs: ffi-type (ffi_type) is defined using the
groveller because it has a name after the "typedef struct" in ffi.h;
ffi-cif (ffi_cif) is defined by hand in structs.lisp because it
doesn't, so gcc can't handle it.  Everything compiles and load in
linux/amd64.
Change types

Change types to :int from :pointer, define +pointer-type-*+ variables.
Define prep-cif and call; tested prep-cif

Define CFFI interfaces to libffi #'prep-cif and #'call.  Define
constants representing libffi types in ffi.h using the groveller as
+type-...+.  Rename symbols in types.lisp to +size-...+ that are read
from the library to free up those symbol names and be more
descriptive.
Successful passing of struct to foreign function

Based on GSL's definition of a complex as 
typedef struct
  {
    double dat[2];
  }
gsl_complex;
I have defined defcstruct to match, defined the interface to
gsl_complex_abs, and can successfully call compute the absolute value
(magnitude) of complex numbers:
FSBV> (test-call #C(1.0d0 2.0d0))
2.23606797749979
FSBV> (test-call #C(3.0d0 4.0d0))
5.0
Successful pass and return of struct to foreign function

New function #'complex-in-out uses GSL's gsl_complex_conjugate to take
and return a complex number:
FSBV> (complex-in-out #C(3.0d0 2.0d0))
#C(3.0 -2.0)
FSBV> (complex-in-out #C(12.0d0 4.0d0))
#C(12.0 -4.0)
Examples now in separate file; comments added

Moved examples to examples.lisp from functions.lisp, cleaned up, and
added comments to explain the examples.
Start interface; don't use package cffi

Macros in interface will mimic CFFI macros.  Added explicit package
names to all CFFI usage, and no longer use the package.
New macro defcstruct

Introduce new macro fsbv:defcstruct which expands to cffi:defcstruct
and a form that bind the symbol property 'type-pointer to the libffi
structure.  This means that to define a new structure that can be
passed to and returned from a foreign function, the user need only
declare with fsbv:defcstruct, whose syntax is identical to
cffi:defcstruct.  The example structure 'complex is now defined this
way, and the example functions work.  Several very small files have
now been consolidated into two files init.lisp and defs.lisp.
Fix missing null pointer

In #'defcstruct, the last element in the list of elements needs to be
a null pointer.  Its absence caused strange memory problems in SBCL
when run from SLIME.  This is now fixed.
All libffi types are obtained by libffi-type-pointer

Replaced the defvars of +pointer-type-...+ with use of
libffi-type-pointer.
Started libffi-function-wrapper

Macro libffi-function-wrapper will make the necessary libffi
structures and call the prep function.  Does not work yet.
Using libffi-function-wrapper in examples

Examples are simplified greatly using libffi-function-wrapper, and
work as before.
Add foreign-funcall and readme.html

New macro fsbv:foreign-funcall with the same arguments as
cffi:foreign-funcall works and used in examples.  Created a
readme.html showing examples.
Fix .asd

Fixed license reference in asd file to refer to readme.html, which is
a verbatim copy of CFFI's license.
Comment out examples

The example file depends on the GSL libraries being present; comment
out in the asd file so those without the libraries installed can still
load fsbv.
Permit :void return type by not making or referencing such an object

Added (libffi-type-pointer :void) and modify libffi-function-wrapper
to avoid generating a 'result if the return type is :void.
Added two more examples

Add an example of two structs in, and a struct return (#'complex-add)
and a struct and a non-struct in, and a struct return
(#'complex-add-real), illustrating the need to pass every argument by
reference, including the :double.
Use macros in examples

New macros foreign-realpart, foreign-imagpart to access the real or
imaginary parts of the foreign structure make the code a little
cleaner.
Use macros in readme.html

The macros introduced into examples.lisp are also be used in
readme.html.