This patch adds initial support for DNA defaults,
- Each DNA struct can optionally have a default struct assigned.
- If this struct is assigned, it's used for defaults when old files are loaded which either.
- Don't define the entire struct.
- Define the struct but don't include a newly added struct member.
So there is no need to loop over initializing values manually version patching.
- This can also be used for initializing new data, by copying these structs into new data instead of setting each value.
- TODO: RNA could automatically use these values instead of calling RNA_def_property_*_default.
- To get the initial struct definitions we can use gdb see: https://stackoverflow.com/a/55368203/432509
This avoids duplicating defaults 2x times (3x once RNA support is added).
This review is mainly to get feedback before spending more time on this and preparing it for inclusion.
Note, this was fun-weekend project, not a priority for 2.8x, nevertheless it could be useful long term.