appview/timeline: collapse identical events
Group consecutive timeline events (defined as being the same action and
operating on the same target) together so that the same target is not
seen multiple times in a row. This notably does not completely aggregate
all events together, so the timeline may still appear as "A B A" if
several instances of event A were broken up by event B.
For collapsed groups, we render "and N other user(s)" in the description
of the event, with a popover that shows the collapsed users if "N other
user(s)" is hovered. The number of events fetched was increased so that
`limit` refers to the number of items in the timeline post-grouping.
Signed-off-by: Kevin Yap <me@kevinyap.ca>