Implement text cursor position protocol.

Here we create a new client/compositor interface in weston to allow
clients to report their x/y cursor position to the compositor. These
values are then used to center the zoom area on this point. This
is useful for everyone, especially people who are visually impaired.
diff --git a/src/compositor.h b/src/compositor.h
index 5752e81..09cd215 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -82,6 +82,11 @@
 	int32_t left, right, top, bottom;
 };
 
+enum {
+	ZOOM_POINTER,
+	ZOOM_TEXT_CURSOR
+};
+
 struct weston_output_zoom {
 	int active;
 	float increment;
@@ -561,7 +566,10 @@
 void
 weston_compositor_shutdown(struct weston_compositor *ec);
 void
-weston_output_update_zoom(struct weston_output *output, int x, int y);
+weston_output_update_zoom(struct weston_output *output,
+						int x, int y, uint32_t type);
+void
+weston_text_cursor_position_notify(struct weston_surface *surface, int x, int y);
 void
 weston_output_update_matrix(struct weston_output *output);
 void
@@ -598,6 +606,9 @@
 void
 screenshooter_create(struct weston_compositor *ec);
 
+void
+text_cursor_position_notifier_create(struct weston_compositor *ec);
+
 struct weston_process;
 typedef void (*weston_process_cleanup_func_t)(struct weston_process *process,
 					    int status);