Bug 1097450 - Save (to settings) the activeLayout of groups supported by one layout, when we change to that layout

- Also, properly define the undefiness of activeLayout in InputLayout's layouts.
You can actually keep the `this._promise` which will always resolve to/retain the value you want but does not call the mozSettings again upon request. The logic of returning the promise or re-request from mozSetting can be kept in `_getSettings`.

The complexity here only save you one tick if there is value in place, which I don't really care.