Added a system for creating chat messages with a style.

Supports colors, fancy stylings, and click/hover events.

The sooner we don't need to use legacy chat the better.
IChatMessage isn't really an api.  If it was and ChatMessage was moved to Sponge, then plugin devs would have no way of creating a message.  It's designed to be instantiated by the end user.  I could move it to a util class if that makes you feel better.