Message store cache should truncate event sets

We already truncate inbound and outbound message sets, but not event sets. We should keep twice as many event keys as message keys, because we expect an ack/nack and possibly one or more delivery report events for each message.
The existing code (which I copied over) used `truncate_at * -1` and I didn't see any particular reason to change it. Now that we have three copies of this, it's probably worth factoring out. I'll investigate doing that.