Add GSettingsBackend API to allow any backend to have a 'has-unapplied'
property. Remove the 'owner' hackery that was used for notifying of
changes to 'has-unapplied' and just use normal GObject notify (and wire
into that from the frontend).
- hold a lock while accessing the tree of delayed values
- use weak reference counts with the owner object to avoid doing
g_object_notify on a dead object
- dispatch the "has-unapplied" notify to the proper main context