Adds support for nested structs and unions.

parser.rs
- Adds detection of nested composite fields so that they can be handled
  specially during generation (see `visit_composite`).
- Changes to manual recursion through Clang's cursors so that top-level
  and nested composites can be handled separately.

gen.rs
- Improves generation for nested composite types.
- Unifies handling of structs and unions somewhat.

types.rs
- Adds `CompKind` to distinguish between structs and unions.
- Updates `CompInfo` to use `CompKind` rather than a bool.

#3 and #94 should be resolved by this change.