Fixed InMemoryStore expunge method. Expunging multiple messages now works correctly.

The expunge method deletes messages from a list while traversing the same list.
I've modified it to traverse descending order (instead of ascending) so that that all messages are checked.