I/O improvements

These improvements reduce file size and loading time - for David's monster mod graph I'm seeing about 25% reduction in load time and 40% reduction in file size. The first commit is also very important for future backward-compatibility when we come to add more plug flags.

Note that the no-serialisation-of-default-values change in e88d7e0 does have implications for people developing nodes and for shader authors - there is some discussion of that in the commit message and you can see some gotchas being addressed in the subsequent commits.