The biggest change is that structs and properties now provide their own name,
which is needed when we want to write everything back to a file. Also a bunch of
reorganization of stuff I didn't understand before.
This is unfortunately one giant commit, but this now (partially) parses
Persistent.sav. There is still some structs and data left to parse, and
we're suspiciously missing 3KiB of data at the end. But... progress!