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)
To ease migration (rather, to not require it), and to reduce the number of changes that would be needed in all the other files, group acts as a divider replacement. If you load a grid with grouping enabled, you get this divider and your former divider-separated items turn into groups. Similarly, if you load a grid that had grouping before without grouping, it doesn't break, you just get normal dividers.

I think eventually it'd be nice to just phase dividers out and then we can just rename this to group (but otherwise if we decide we don't want groups and this has been in master for a while, there won't be a painful transition away from it).