Bug 856910 - Implement keyboard panel to support 3rd keyboard

Bug 856910 - [Settings] List installed IME and corresponding layouts so the user can enable/disable them.

This is the pull request to add 3rdParty keyboard support.
Please be informed this change would need Gecko m-c to test with.

For this bug, please help review bd22f6e0b76d1e5a4c4551f4082db4fff79ca871 only, the other 2 commits will be reviewed by other module peers/owners.