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.
How about using a ````Map<Character,ChatFormatting>```` instead of a ````List<ChatFormatting>````?