Fix an ASAN issue in LockScreenPresentationWatcher
The RenderLoop::framePresented() slot captures the client object but it doesn't take into account that the client can be destroyed when the framePresented signal is emitted.
In order to simplify logic and also make the presentation watcher less error prone, this change makes the watcher check if all outputs have screen lock greeters after compositing a frame.