WIP: Rework group proto to conform to preliminary spec

THIS COMMIT DOESN'T WORK AT ALL. (pretty much)

Plan:
Everything is in a group, so no need for group-start/group-end. Instead,
when grouping is enabled, replace the normal divider with a divider that
has grouping behaviour (using most of the code from group).

The major difference code-wise is that items are always in groups, so we
have to look ahead to the next divider to see when to skip rendering
collapsed items, and similarly, the group has to look behind it till the
next divider or the start of the items to see what items are inside it
(instead of ahead to the next group-end).