Create KNotification instances on demand
This makes all methods in AlarmNotification safe to call at any time, independent on whether the KNotification object has already self-destructed or not. It also avoids creating KNotification objects for still suspended alarms.
This is an intermediate step to unify the handling of active and suspended alarms in NotificationHandler, so that we can correctly restore active alarms after a restart as well, and can finally clean up AlarmNotification objects properly once dismissed.