I know I suggested this closeAll function, but I didn't really think about how much work it would be to do it right. Do we really even need this in any real life scenarios?

If not, let's just remove it. This implementation makes me nervous, because it could often end up doing things the developer wouldn't expect.

If we do need it, what would you think of keeping track of the Message instances and clearing them out by calling each instance's close method?