Add top-level printing for OCaml values:

   # let s = ocaml_string_start "abcde";;
   val s : string Ctypes.ocaml = "abcde"
   # s +@ 2;;
   - : (string, [ `OCaml ]) Ctypes.pointer = "abcde" [offset:2]
Add top-level printing for OCaml types:

   # ocaml_string;;
   - : bytes ocaml typ = char*
Mark OCaml values as 'alloc', since references are boxed.

In practice, OCaml types can't be used as return types, so it doesn't
much whether they're marked as 'alloc'.
Tests for passing OCaml values directly to C. (WIP)
Stub support for passing values directly to C.
WIP.