Added chat formatting classes (highly/easily expandable)

This system is easily expandable and
features such as hover can be added easily, along with any other chat
features that gets added to the game in the future, I feel that this
system of chat formatting will more organized to use and easier to do
repetitive formatted chat messages such as: 
"You do not have permission to ..."

Below shows how to use this system, these examples assume that
"player.sendmessage()" accepts the following arguments: string, string and my “format” type,
my “formatted message” type. Once player.sendmessage and any other
chat broadcasters like it are put in, I will submit a commit to
implement that if not already done (this is if this commit is merged)

Now, Code examples:

	String message = "Hi";
	
	//Plain text saying "Hi"
	player.sendmessage(message)
	
	//Dark Red Underlined Text saying "Hi" (showing 3 ways)
	// #1
	player.sendmessage(message, new ChatFormat(MinecraftColor.DARK_RED, ChatFormat.Formatting.Underlined));
	
	// #2
	ChatFormat myformat = new ChatFormat(MinecraftColor.DARK_RED, ChatFormat.Formatting.Underlined);
	player.sendmessage(message, myformat);
	
	// #3
	FormattedMessage messageformatted = new FormattedMessage(message, myformat);
	player.sendmessage(messageformatted);
	
	//Dark Red Underlined and Bold Text saying "Hi" (showing 1 way)
	// #1
	ChatFormat.Formatting[] myformats = new ChatFormat.Formatting[]{ChatFormat.Formatting.Underlined, ChatFormat.Formatting.Bold}
	player.sendmessage(message, new ChatFormat(MinecraftColor.DARK_RED, myformats));

EDIT:
I feel that my system is better then the other 3 existing PR's revolving around the same concept (no offence to any of the makers or those PR's in anyway what so ever) because in my opinion at least, my system is simpler and easier to use, but yet advanced enough to get a combination of chat formats and colors applied without using over excessive code, this system is easily expandable (within reason) for any future improvements that Mojang decides to add, and on that note I foresee this system withstanding time and updates quite easily. I think that something as simple as sending a chat message should be 3 basic things: Quick, Easy and Painless.
I believe that this PR covers all of these things, quick because you define 1 format or even 1 formatted message and use it as many times as you want, so less writing the same code over and over. 
Easy because all of the Enums are clear and simple, and their meaning is apparent, I believe that the classes and constructors are named appropriately and therefor easier to remember. 
And lastly painless, for plugin developers it's painless because it's quick and easy, but for the SpongeAPI developers and updater's, it's painless because of it's expandability, Minecraft is constantly being updated and improved, and you do not want to be rewriting these classes every few updates, that's why I tried to keep it simple, easy to understand, less ambiguous code to get messed up and easiliy updatable! 

And that's all I got, thanks for reading if you made it this far ;) please feel free to leave me a comment below, constructive criticism only please :D