[RFC v3] implement v1 idle inhibit protocol
The idle inhibitor calls Inhibit and UnInhibit methods of org.freedesktop.Screensaver when the surface is not obscured or when it is obscured respectively.
Tested with mpv /mnt/devel/mpv-build/mpv/build/mpv -v --vo=gpu --no-audio --gpu-context=wayland
v1->v2: moved visibility checks in inhibitor. The visibility check callback is signaled by a new obscured_changed signal from meta-shaped-texture / meta-surface-actor.
v2->v3: the signal is triggered from set_unobscured_region