EDataBookFactory: Always watch sender's bus name.

Watch the sender's bus name on every new connection so we can clean up
its connections if the bus name vanishes (e.g. client program crashes).

Previously we were only watching the sender's bus name if the backend
instance was created for that connection, but that was unintentional.
EDataBookFactory: Work around a GDBus name watching bug.

Calling g_bus_unwatch_name() from a GBusNameVanished callback will
corrupt the function arguments.  Work around this GDBus bug [1] by
unwatching the bus name last in the callback.

[1] https://bugzilla.gnome.org/706088
EDataCalFactory: Always watch sender's bus name.

Watch the sender's bus name on every new connection so we can clean up
its connections if the bus name vanishes (e.g. client program crashes).

Previously we were only watching the sender's bus name if the backend
instance was created for that connection, but that was unintentional.
EDataCalFactory: Work around a GDBus name watching bug.

Calling g_bus_unwatch_name() from a GBusNameVanished callback will
corrupt the function arguments.  Work around this GDBus bug [1] by
unwatching the bus name last in the callback.

[1] https://bugzilla.gnome.org/706088
EBookBackend: Add a "shutdown" signal.

The "shutdown" signal is emitted when the last client app destroys its
EClient proxy object for a backend.  This signals the backend to begin
final cleanup tasks such as synchronizing data to permanent storage.

This increases the size of EBookBackendClass, and therefore requires a
libedata-book soname bump.
ECalBackend: Add a "shutdown" signal.

The "shutdown" signal is emitted when the last client app destroys its
EClient proxy object for a backend.  This signals the backend to begin
final cleanup tasks such as synchronizing data to permanent storage.

This increases the size of ECalBackendClass, and therefore requires a
libedata-cal soname bump.
ECalBackendCalDAV: Override the shutdown() class method.

Allows us to cleanly shut down the slave thread without blocking in
dispose().  This was apparently also causing problems with GWeakRef,
since weak references are destroyed just prior to dispose().