gvfsjobunmount: Block new requests before calling unmount() on a thread

Block new requests before calling unmount() on a separate thread to
prevent a race where new jobs are received and processed while the
unmount() is being executed.

This is not necessary for try_unmount() because all the job handling is
done on the same thread as the try_unmount() method and requests are
blocked when the try_unmount() method completes.

https://bugzilla.gnome.org/show_bug.cgi?id=710986
mtp: Remove fail-during-unmount workaround

Since jobs should now fail properly when an unmount is in progress,
remove the mtp backend-specific implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=710986
daemon: Set callback to avoid endless loop during unmount

It is not possible to respond to unmount dialog after 2 sec timeout,
because the callback isn't set properly. The dialog reopens every 2
seconds until the daemon is killed.

Because a dbus method is called every 2 seconds, we may get multiple
replies (e.g. one normal reply and several error replies due to a closed
connection).  Handle this by ignoring all but the first reply.

Based on a patch by Ondrej Holy.

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