Minor enhancements from justin

I'd like to get some feedback if these changes are helpful.

In particular, I wanted to have the ThreadStore listen for new messages created, and then pull the last message from the MessageStore. However, due to some circular dependency issue, I could not get that work. The code that doesn't work is commented out in ThreadStore.

I'd also like to know if having the MessageStore send a message to update the ThreadStore directly is acceptable. Clearly, the MessageStore is dependent on the ThreadStore. I'm guessing that having this dependency only go in one direction was critical.
I added a new commit that moves this code to a new file.