Chat Component API

This adds a API to allow plugins to use the new chat features in 1.7. This also replaces ChatConverter with a system that uses the new components and adds methods to convert them back to the old format. *broadcast* and *sendMessage* now accept components. This also adds a ComponentBuilder which provides chainable methods to simplify the creation of messages

**Todo**
* ~~Add documentation to classes/methods that are missing it~~
* ~~Add access to components from events~~
* ~~Translatable components currently don't display in the console or when using toPlainText/toLegacyText (Not sure how to handle this)~~