BusDesktopFile: Refactor logic to free the parser contents
Now that we have _DBUS_STRING_INIT_INVALID, we can initialize parser.data to a value that is safe for _dbus_string_free(), which means we can put all the cleanup through a single code path that definitely frees everything.
This is a refactoring on top of !42 (merged) to make the memory management more obvious. It includes !42 (merged).