don't leak GNodes in plist_free

Before recursing over its children, plist_free_node started by
detaching the current GNode from its parent which means that
calling g_node_destroy on the root of the tree was freeing only
the top-level GNode while what was intended was to free the whole
tree. Don't leak memory by not detaching children GNodes from their
parents so that g_node_destroy on the toplevel GNode can clean
everything.
diff --git a/src/plist.c b/src/plist.c
index ed83e3c..1abd0f9 100644
--- a/src/plist.c
+++ b/src/plist.c
@@ -72,6 +72,7 @@
     plist_free_data(data);
     node->data = NULL;
     g_node_children_foreach(node, G_TRAVERSE_ALL, plist_free_node, NULL);
+    g_node_destroy(node);
 }
 
 plist_t plist_new_dict(void)
@@ -159,7 +160,6 @@
     if (plist)
     {
         plist_free_node(plist, NULL);
-        g_node_destroy(plist);
     }
 }