Improve unions.  Members of a union are now scoped within the union, although they share ordinal space with the parent struct.
Update docs for unions.  Also allow setters for void values to omit the parameter.