background: Fix reference counting in background XML loader

Commit b9e3603ba4d6b494c0659cbc0196ef9f81fa6a60 added an unref to fix a
memory leak, but it went to a wrong place -- in XML loader, all items
are stored in a hash table that takes ownership of them, and destroyed
when the hash table goes away.

This commit fixes the reference counting in the XML loader and adds
explicit g_object_ref / g_strdup when inserting values to the hash table
to make the memory management more obvious.

The following commit fixes the real leak.

https://bugzilla.gnome.org/show_bug.cgi?id=709453
background: Fix a memory leak with wallpaper loading

This removes an extra g_object_ref when inserting items to GtkListStore:
the list store takes care of incrementing the reference count itself and
the caller doesn't need to do it.

https://bugzilla.gnome.org/show_bug.cgi?id=709453