Add GCancellable handling to LUCStarter
When systemd is told to start an app, it is passed a GCancellable object
so that the LUCStarter can cancel the start call.
Internally, the LUCStarter has a GHashTable associating each app with
its GCancellable.
Because start_app_finish requires the LUCStarter to start the next group
of apps, the LUCStarter must persist until all start jobs have finished.
For this reason, the start_app method increases the reference count to
the LUCStarter, and the start_app_finish method decreases the reference
count.