This commit refactors the digest grouping logic to remove the `Grouper` and `SubGrouper` abstractions. This simplifies the code and makes it easier to add new grouping logic.
It also introduces a new primary grouper for dates, which is used by the `date` view.
The `date` view now groups by date (oldest first), then by feed.
The `category` view groups by category, then by feed.
The `ai` view groups by category, then by LLM.
The sub-group titles are also fixed to no longer include the primary group title.