Use the notification system to bring attention to attention-seeking windows

This does the following:

When a window is marked urgent or demands attention, a "critical" notification is created, showing a thumbnail of the window behind its icon, the window title, and a short message, telling whether the window is urgent or demanding attention. The notification is destroyed as soon as the alerting window receives focus, is closed or stops alerting.

If a window is marked urgent I automatically set focus to the window after a grace period of about 10 seconds.

I use critical notifications to make sure that a notification of this kind never ends up in the notification bin. I would like to use different levels of critical-ness to distinguish between urgent and attention-demanding windows and still keep all notifications out of the bin, but that doesn't seem to be possible.

This behavior should probably be controlled by a huge number of detailed settings, but I leave that for others to decide.

I am aware of @mtwebster's pull request to handle this in the context of the window-list applet; I have even contributed to it. However, I've gradually come to the conclusion that that is not the right place for this, since the window-list applet is an optional component.