gui: add keyboard support for Ctrl layer and more special keys

- rename NotifyKeyboard to NotifyCharInput
- input: handle arrow keys in NotifyKey with standard KEY_* codes
- fix page handler to return 0 from NotifyKey if key was handled
- fix GUIAction::NotifyKey to not swallow all keys
- change home button code from KEY_HOME to KEY_HOMEPAGE
  (to avoid collision with Home/End, conforms to Android 3.0+)

Change-Id: Ib138afa492df8d0c1975415e8b5334c8778ccc90
diff --git a/gui/pages.hpp b/gui/pages.hpp
index e7ad55e..87e1fb5 100644
--- a/gui/pages.hpp
+++ b/gui/pages.hpp
@@ -64,7 +64,7 @@
 	virtual int Update(void);
 	virtual int NotifyTouch(TOUCH_STATE state, int x, int y);
 	virtual int NotifyKey(int key, bool down);
-	virtual int NotifyKeyboard(int key);
+	virtual int NotifyCharInput(int ch);
 	virtual int SetKeyBoardFocus(int inFocus);
 	virtual int NotifyVarChange(std::string varName, std::string value);
 	virtual void SetPageFocus(int inFocus);
@@ -108,7 +108,7 @@
 	int Update(void);
 	int NotifyTouch(TOUCH_STATE state, int x, int y);
 	int NotifyKey(int key, bool down);
-	int NotifyKeyboard(int key);
+	int NotifyCharInput(int ch);
 	int SetKeyBoardFocus(int inFocus);
 	int NotifyVarChange(std::string varName, std::string value);
 
@@ -155,7 +155,7 @@
 	static int Update(void);
 	static int NotifyTouch(TOUCH_STATE state, int x, int y);
 	static int NotifyKey(int key, bool down);
-	static int NotifyKeyboard(int key);
+	static int NotifyCharInput(int ch);
 	static int SetKeyBoardFocus(int inFocus);
 	static int NotifyVarChange(std::string varName, std::string value);