wayland: Restore old implementation of KIdleTime poller
The idle poller was ported away from using internal wayland connection to using only kwin's internal apis, but there are a couple of issues with the implementation:
- the implicit state machine is too complex for such a simple thing
- the catchIdleEvent() function has a bug, it stops existing timers instead of creating a new one to detect resumed state
- both IdleInterface and KWinIdleTimePoller have their own idle detection implementations, which is not future-proof
- it relies on SeatInterface::timestampChanged()
This change restores old implementation of the idle time poller, which was simpler and correct.
Since we can't use internal wayland connection anymore, an idle detector helper was added. It provides a simpler and intuitive api. In addition to that it can be reused both by kwin and IdleInterface (in the future).
Edited by Vlad Zahorodnii