Basic field name support.

Support for giving names to struct and union fields

Used in type printing:
```ocaml
# let point : point structure typ = structure "point";;
[...]
# let x = field "x" (point *:* float);;
[...]
# let y = field "y" (point *:* float);;
[...]
# seal point;;
[...]
# point;;
- : point Ctypes.structure Ctypes.typ =
struct point { float x; float y;  }
```

Used in value printing:
```ocaml
# let p = make point in (setf p x 10.5; setf p y 12.0; p);;
- : point Ctypes.structure = { x = 10.5, y = 12  }
```

Should come in handy for stub generation.