compositor: Add debug key bindings infrastructure

Add the concept of debug key bindings, that are bindings that activate
debug features in the compositor. The bindings are added to a list in
the compositor, but the triggering them is left to the shell.

On the shell side, a global debug key binding is added. When the user
presses mod-shift-space, the shell will invoke the debug bindings based
on the next key press.

This also converts the debug shortcuts for repaint debugging, fan
repaint debugging and the hide overlays shortcut in compositor-drm to
use the new infrastructure.
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index f360568..8657b6b 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -2338,9 +2338,8 @@
 
 	udev_device_unref(drm_device);
 
-	weston_compositor_add_key_binding(&ec->base, KEY_O,
-					  MODIFIER_CTRL | MODIFIER_ALT,
-					  hide_sprites_binding, ec);
+	weston_compositor_add_debug_binding(&ec->base, KEY_O,
+					    hide_sprites_binding, ec);
 
 	return &ec->base;