dmap: Fix memory leak when Avahi is absent

When Avahi isn't around, the plugin init will fail, and leak
a couple of hash tables and objects. Clean those up before
exiting the function.

This also checks for error properly.

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