compositor: finish frame if redraw fails

If we are about to finish a frame, but a redraw is pending and we let the
compositor redraw, we need to check for errors. If the redraw fails and
the backend cannot schedule a page-flip, we need to finish the frame,
anyway.

All backends except DRM use a timer to schedule frames. Hence, they cannot
fail. But for DRM, we need to be able to handle drmModePageFlip() failures
in case access got revoked.

This fixes a bug where logind+drm caused keyboard input to be missed as we
didn't reenable it after a failed page-flip during deactivation.
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 7b670d9..519b1bc 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -212,7 +212,7 @@
 	wl_surface_commit(output->parent.surface);
 }
 
-static void
+static int
 wayland_output_repaint(struct weston_output *output_base,
 		       pixman_region32_t *damage)
 {
@@ -227,7 +227,7 @@
 
 	pixman_region32_subtract(&ec->primary_plane.damage,
 				 &ec->primary_plane.damage, damage);
-
+	return 0;
 }
 
 static void