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.
Merge pull request #17629 from RudyLu/keyboard/Bug956175-switch_language

Bug 956175 - [keyboard refactor] handle language switching.
r=timdream