This adds shader generation of writers (and cleans up some other things) and much better support for enums.
Add a layout pass to the struct derive logic.