editor, keyboard: Add support for arrow keys

Add support for arrow keys on the virtual keyboard and make it possible
to move around the cursor in the editor example.
diff --git a/clients/keyboard.c b/clients/keyboard.c
index c90c5b2..bf0e9f0 100644
--- a/clients/keyboard.c
+++ b/clients/keyboard.c
@@ -47,7 +47,11 @@
 	keytype_space,
 	keytype_switch,
 	keytype_symbols,
-	keytype_tab
+	keytype_tab,
+	keytype_arrow_up,
+	keytype_arrow_left,
+	keytype_arrow_right,
+	keytype_arrow_down
 };
 
 struct key {
@@ -96,9 +100,13 @@
 	{ keytype_default, ".", ".", 1},
 	{ keytype_switch, "ABC", "abc", 1},
 
-	{ keytype_symbols, "?123", "?123", 2},
-	{ keytype_space, "", "", 8},
-	{ keytype_symbols, "?123", "?123", 2}
+	{ keytype_symbols, "?123", "?123", 1},
+	{ keytype_space, "", "", 6},
+	{ keytype_arrow_up, "/\\", "/\\", 1},
+	{ keytype_arrow_left, "<", "<", 1},
+	{ keytype_arrow_right, ">", ">", 1},
+	{ keytype_arrow_down, "\\/", "\\/", 1},
+	{ keytype_symbols, "?123", "?123", 1}
 };
 
 static const unsigned int columns = 12;
@@ -255,6 +263,22 @@
 			input_method_context_key(keyboard->keyboard->context,
 						 XKB_KEY_Tab, WL_KEYBOARD_KEY_STATE_PRESSED);
 			break;
+		case keytype_arrow_up:
+			input_method_context_key(keyboard->keyboard->context,
+						 XKB_KEY_Up, WL_KEYBOARD_KEY_STATE_PRESSED);
+			break;
+		case keytype_arrow_left:
+			input_method_context_key(keyboard->keyboard->context,
+						 XKB_KEY_Left, WL_KEYBOARD_KEY_STATE_PRESSED);
+			break;
+		case keytype_arrow_right:
+			input_method_context_key(keyboard->keyboard->context,
+						 XKB_KEY_Right, WL_KEYBOARD_KEY_STATE_PRESSED);
+			break;
+		case keytype_arrow_down:
+			input_method_context_key(keyboard->keyboard->context,
+						 XKB_KEY_Down, WL_KEYBOARD_KEY_STATE_PRESSED);
+			break;
 	}
 }