Bug 1111438 - KeyboardManager clean-up

- Reduce showingLayoutInfo to showingInputGroup, which now only restores the current input type group; the activeLayout index and the layout itself has to be consulted from inputLayouts. This avoids unnecessary bookkeeping.

- Explicitly separate the "preload" concept from setKeyboardToShow to reduce if-else complexity in the function (and to make setKeyboardToShow less god)

- Renamed InputLayouts.layouts.group.activeLayout to activeLayoutIdx to better reflect the idea that it stores an index.

- Mandated that activeLayoutIdx should not be written by KeyboardManager.