Major refactoring and message queue

Moved a lot of the TTS functions and options struct to a class-object
system.

In addition to general cleanup of code a queuing system for messages has
been added which prevents a user  from being spammed with 100's of
messages. Now, by default, only 5 messages are queued before oldest
messages are removed.