When the value for a property isn't present in it's JsonObject,
it can be assigned upon reading. Previously this could generate
history events even when just viewing an old diagram with some
of newer properties missing.
Modify the code, so setting to default doesn't count as a change
anymore.
* Add generic methods for data storage, making it able
to store data in a hierarchy.
* Reimplement ld_diagram_{get,set}_data_for_param on top
of the generic methods.
* Add a "data-changed" signal.
This is required for gtkdoc-scangobj. So far it's much like it's been
before, the main differences are that source files are in two directories
from now on and the build process has two stages.