Bug 956175 - [keyboard refactor] handle language switching.
 - Add KeyboardLayoutManager, load layout definition file dynamically.
 - Change the format of layout definition from js to json.
 - Add unit tests.