Saving PushToSpeech messages to the database

This required some refactoring of some interfaces, but the messages that
are read aloud are now stored in the database.