Remove user/role code duplication

The by-role and by-user tabs in view-settings.html were almost complete
duplicates of each other, with the only difference being which part of
the config data structure they write to. Removed that duplication. A few
divs need to be shown or hidden based on whether the current tab is a
byUser tab or a byRole tab, but overall it simplifies the logic a lot.

And since view-settings.html had almost all of its lines changed anyway,
converted tabs to spaces at the same time.
Add ViewModel for input systems configuration