seat: allow asynchronous command scheduling
When an asynchronous session-deactivation is finished, we need to know
which task to do now. As we cannot let the caller decide, because we are
asynchronous, we have to remember the task.
Three tasks are defined now but this can be extended. We reset the task
after the current session got deactivated. This guarantees that we never
have pending schedules but always return to a sane default even if we
missed a notification.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>