Adaptive keyboard width/position parser (DO NOT MERGE)

This change introduces the following features to Keyboard XML format.

 * "keyXPos" can specify the key X coordinate directly.
 * "keyXPos" can be negative. The X coordinate will be calcluated from
    the right edge of the keyboard toward left.
 * "keyWidth" can be zero to be filled up to the right side.
 * "keyWidth can be negative. The key will be filled up to both sides.
 * Spacer's horizontalGap is renamed as keyWidth, and can be inherited
   from key-style.
 * Spacer can have keyXPos attribute.

Using these syntax, all keyboard layouts have been re-written.

Bug: 4442045
Change-Id: I314b2e8ca2aa145ff9506cbf927140a15685af42
diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml
index 62fbdee..7af8d07 100644
--- a/java/res/xml/kbd_phone.xml
+++ b/java/res/xml/kbd_phone.xml
@@ -46,7 +46,7 @@
         <Key
             latin:keyLabel="-"
             latin:keyStyle="functionalKeyStyle"
-            latin:keyWidth="20%p"
+            latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
@@ -60,7 +60,7 @@
         <Key
             latin:keyLabel="."
             latin:keyStyle="functionalKeyStyle"
-            latin:keyWidth="20%p"
+            latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
@@ -73,7 +73,7 @@
             latin:keyStyle="num9KeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="20%p"
+            latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
     <Row
@@ -88,7 +88,7 @@
             latin:keyStyle="numSpaceKeyStyle" />
         <Key
             latin:keyStyle="returnKeyStyle"
-            latin:keyWidth="20%p"
+            latin:keyWidth="0%p"
             latin:keyEdgeFlags="right" />
     </Row>
 </Keyboard>