Some GUI stuff from a failed idea

Rather than leave it uncommitted and gathering dust.
Make sure everything we do in chat is correct

Added type checking to everywhere I add to the chat messages, and to the
chatbox's AddMessage method.

If the chat messages table has gaps in it, now the default chat will
error instead of the chatbox and perhaps someone will bother to fix the
source.