Sidepanel abstraction & Layout switches

Extracts an `arethusaTabs` directive, which is used in the sidepanel. This is useful when we at some point will want to have tabs inside grid items.

The user is not notified on layout changes and can cycle through different layouts by a keybinding (defaults to `l`).


Will help on #398 and useful for #510