Union support in clang

This is my first time digging around in the guts of the code generation, so please let me know if any of this looks wrong. It seems to work, but I've only tested on the example projects.

In addition to adding union support for C and C++, I fixed (I think) struct code generation for C. Before, the cproj example would not work for me due to the following error:
```
Error compiling Cython file:
------------------------------------------------------------
...
cdef extern from "basics.h" :
    cdef struct ThreeNums:
        # constructors
        ThreeNums() except -1
                 ^
------------------------------------------------------------
/Users/john/code/python/xdress/tests/cproj/cproj/c_pybasics.pxd:18:18: Exception clause not allowed for function returning Python object
warning: /Users/john/code/python/xdress/tests/cproj/cproj/c_pybasics.pxd:47:35: Function signature does not match previous declaration
warning: /Users/john/code/python/xdress/tests/cproj/cproj/c_pybasics.pxd:55:13: Function signature does not match previous declaration
```