text: Add support for control keys to the protocol

Add key event to the text_model interface and a key request to the
input_method_context interface. Implement it in the example editor
client and the example keyboard.

Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
diff --git a/src/text-backend.c b/src/text-backend.c
index b2f9094..0a93b6b 100644
--- a/src/text-backend.c
+++ b/src/text-backend.c
@@ -316,11 +316,23 @@
 	text_model_send_delete_surrounding_text(&context->model->resource, index, length);
 }
 
+static void
+input_method_context_key(struct wl_client *client,
+			 struct wl_resource *resource,
+			 uint32_t key,
+			 uint32_t state)
+{
+	struct input_method_context *context = resource->data;
+
+	text_model_send_key(&context->model->resource, key, state);
+}
+
 static const struct input_method_context_interface input_method_context_implementation = {
 	input_method_context_destroy,
 	input_method_context_commit_string,
 	input_method_context_preedit_string,
-	input_method_context_delete_surrounding_text
+	input_method_context_delete_surrounding_text,
+	input_method_context_key
 };
 
 static void