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)
One of the big changes this patch makes is that it removes external use of GridItem.transform and instead uses render - so this is used by drag'n'drop for drawing the icon under the user's finger (but still skipping it when the grid is rendered). Rather than this, we could have GridView check if the item is active and skip rendering there (though I guess we'd have to split out the positioning from the rendering too) - this probably would be nicer though, I'll do that.