WIP: Homescreen grouping (v2)

Everything is in a group, dividers act as group separators.

Working (to a fashion):
- Rearranging groups
- Expanding/collapsing groups
- Creating new groups between groups
- Saving/restoring collapsed state
- Transitions

TODO:
- Editable group names
- General polish and optimisation (pending Gecko bugs)
or
```js
var cb;
if (active) {
  cb = function(item) {
    item.element && item.element.classList.add('active');
  }
} else {
  cb = function(item) {
    item.element && item.element.classList.remove('active');
  }
}

this.forEachItem(callbac);