Support wrapping unions

The fields of a union come with the correct (equal) offsets from the parser so all we need to do is generate a struct and not throw an exception along the way.