service: fix some leaks in the writer
service: fix some leaks in the writer

Also, slightly change the rules about begin/change/commit/end.

It used to be theoretically possible to call:

  begin(), change(), commit(), change(), end().

but that is no longer supported (and it was never used anyway).  Now the
only valid thing to do after a commit() is end().

GNOME/dconf,GNOME/dconf,GNOME/dconf,GNOME/dconf