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.
Can we not use enums for actions? Like as a rule? They've very limiting, and while I can't think of a reason why that is bad here, for example in bukkit you could not provide custom teleport reasons because they were restricted to the enum.