[ #31178 ] Refactor events and actions handling to use specialized classes

Big commit, but mostly refactoring. It currently doesn't work as well as
the previous code paths, but this will be fixed by upcoming commits.

The goal of this is to have a central source of events to stream into
'CanvasObjectManager'. The previous codepath grew expodientially when
adding new canvas object, this one require more entities, but will scale
with 4 line of code per canvas object.
[ #31178 ] Restore Ringing and Call ended canvas objects
[ #31178 ] Restore exit animation for concurent events
[ #31178 ] Add QWidget canvas element support (including autocompletion)
[ #31178 ] Use system notification if the window is minimized

Trying to do the same for focus isn't safe as most window managers
don't set correct ewmh properties, so the window state is just
undefined.
[ #30839 ] Cleanup, documentation