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.
This is not what we want to do.  We should not be writing code about the behavior of the ThreadStore inside the MessageStore.  The MessageStore should know as little as possible about anything outside of itself, so that it remains highly decoupled from other objects in the application.  This is in keeping with the spirit of the [Law of Demeter](https://en.wikipedia.org/wiki/Law_of_Demeter).  Stores should ideally know nothing about the other stores.  In practice, however, we need to sometimes derive data in one store by first getting some data in another.  Allowing the store to know a small handful of getter methods on the other store is okay in this situation.