- Remove the extension's `since` and `next_batch` fields. The position is now
tracked via the global `pos`, with per-room connection state recording how
far each room has been sent so that `limit` paginates without holding `pos`
back and lost responses are re-delivered.
- Honour the `lists` and `rooms` fields.
- Send all unexpired sticky events when a room enters scope for the first
time or is newly joined, and catch up on events sent while a room was out
of scope when it re-enters.
- Enabling the extension partway through a connection returns all unexpired
sticky events for in-scope rooms, and re-enabling it after disabling it
returns the unexpired sticky events sent in the meantime.