Maintains the eventId → CachedReceipt[] reverse index, with a forward
(userId, receiptType) → eventId pointer for fast eviction. Shared by all
receipt buckets (threaded, unthreaded, dangling) inside a RoomReceipts.
Record that this user's effective receipt for the given type now points at
newEventId, with payload data. Evicts any prior entry the cache had
for (userId, receiptType) at a different event.
Maintains the eventId → CachedReceipt[] reverse index, with a forward
(userId, receiptType) → eventIdpointer for fast eviction. Shared by all receipt buckets (threaded, unthreaded, dangling) inside a RoomReceipts.