Bug 824139 - Update alternate keyboard for email.

This pull request creates a new overrides system. In this case we actually needed to insert a key at the end of the row, instead of just toggling key values. I see us needing to do more of this in the future.

Also we should be able to bring some of the display specification back into layout.js instead of in keyboard.js modifyLayout().