The held message store fail on cross-posts
Here's the use case: someone cross-posts to two lists with the wrong address, so the message is held on both lists. This creates two Requests in the Database, but only one instance in the MessageStore, since it's indexed by Message-Id.
When an owner from the first list accepts the message, the hold request is deleted and the message is removed from the store. But when the admin tries to view the hold requests for the second list, the message is not found in the store and the REST server tracebacks.
I think we should check that a message in the store has no more references before deleting it. Since hold requests have the message_id as a key, this may be rather easy. It would however need an additional method on the ListRequests manager since there is currently no way to query by key.
What do you think?