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)
instead bind(this) you can do:

´´´js
exports.requestAnimationFrame(() => {
  this.firstRenderAfterToggle = true;
  this.grid.render();
 this.grid.element.classList.remove('collapsing');
});
´´´

just to follow the vertical homescreen code style