Replace more occurrences of (m|re)alloc with caml_stat_(alloc|resize).
Make the POSIX date example more interesting by retrieving a few fields with
getf to demonstrate how to manipulate structure fields.

Also add an interface file with unnecessary values removed.
Abstract types now have names.
Pretty-printing of object and function types.
Findlib target for installing top-level pretty printers for types.
Give the user control over the lifetime of closures passed to C.
Rather than passing OCaml function values to C we now pass an integer
identifier that resolves to a callable object so long as the original
closure is still live.
Correct section header.
Consistently use 'type a. ...' syntax for signatures.
Printers for signed and unsigned integer types.
Printing for pointers.

  # let getenv = Foreign.foreign "getenv" (string @-> returning (ptr char));;
  val getenv : string -> char Ctypes.ptr = <fun>
  # getenv "USER";;
  - : char Ctypes.ptr = (char*) 0x7ffff65bfa7b
  # getenv "A";;
  - : char Ctypes.ptr = (char*) (nil)
General printing for C values.
Top-level printers for POSIX types.

  # let time = Foreign.foreign "time" (ptr void @-> returning time_t);;
  val time : unit Ctypes.ptr -> PosixTypes.time_t = <fun>
  # time null;;
  - : PosixTypes.time_t = 1372340341
Print floats and doubles with more precision.
Tests for generic value printing.
Merge pull request #27 from yallop/type-printing

Generic printing for C types and values
Treat sealing empty structs or unions as an error.
Merge pull request #28 from yallop/empty-structs-and-unions

Treat sealing empty structs or unions as an error.
Record passability for primitive types.
Add string_opt view

Sometimes a "char *" isn't actually a string, but nothing at all.
Merge pull request #31 from robhoes/master

Add string_opt view