OptionalDeclarations

Very basic system for coping with optional names.

Saves having to write them out 3 times at the expense of making the binding file look less like C.

If only CFFI exposed the cdef data better :(