Add a layout pass to the struct derive logic.
This version will be similar but somewhat different to what's in piet-metal now. Hopefully a little simpler to use (no distinction between packed and unpacked structs) and better structured.
Rework Collatz example to use new traits.
This brings in a bunch of code from vk-toy but doesn't yet do anything.