Keep banners stacked through screen lock

Notificate previously had no session-modes, so the shell unloaded it
whenever the screen locked, handing notifications back to the native
tray. Notifications received while locked backed up in the tray's own
queue and drained with the default single-banner UI on unlock or the
next fullscreen change instead of Notificate's stack.

Declare unlock-dialog support so Notificate stays hooked through a
lock, and gate _tryShow on Main.sessionMode.hasNotifications (mirroring
the shell's own check) so banners still don't show over the lock
screen — they just queue in our own stack instead of the native one.
