Rearrange struct_gen_sm to make adding support for non-extras easier
JSON generation for full structs
Test JSON generation of parsed structs
Test JSON generation for constructed structs
Clean up declaration generation

Need to be able to get at the C type name for all types.
Generate an *_push function for array types