Generate codes for libffi ABI specifications.

[Foreign.foreign][foreign] and [Foreign.funptr][funptr] now take an additional optional argument, `abi`, a value of `Libffi_abi.abi`, which specifies the ABI to use.

The [Libffi_abi][libffi_abi] module exposes all possible codes.  The codes available on a particular platform are computed during compilation by the [libffi-abigen][libffi-abigen] program.

Fixes #121.

[libffi_abi]: https://github.com/yallop/ocaml-ctypes/blob/abis/src/ctypes-foreign-base/libffi_abi.mli
[libffi-abigen]: https://github.com/yallop/ocaml-ctypes/blob/abis/src/libffi-abigen/libffi_abigen.ml
[foreign]: https://github.com/ocamllabs/ocaml-ctypes/blob/b47bbf54/src/ctypes-foreign-unthreaded/foreign.mli#L10
[funptr]: https://github.com/ocamllabs/ocaml-ctypes/blob/b47bbf54/src/ctypes-foreign-unthreaded/foreign.mli#L38