Implement Titles API

Through implementing Glowkit#51, this provides plugins (and players) the ability to set titles to players. These titles are fancy things that annoy me personally.

**What does this PR include?**
- Titles (with color code support!)
- `/title`

**What does this PR not include?**
- A proper chat component system
  - A workaround system has been implemented because of how the protocol works. The client is expecting a JSON string and it should be correctly formatted. Shoving messages with spaces (ie: `Hello there!`) will break the client. 
  - Extra checks were done in the command handler to ensure that the player cannot break the client with invalid JSON as well. This performs very basic checks as the client is somewhat resilient to extra keys.

I strongly suggest that when the chat component system is implemented that this gets fixed alongside it. 

------------------------------

*Edited by turt2live*

**Related Links:**
- Glowkit: GlowstoneMC/Glowkit#51
- [Sample plugin](https://drive.google.com/folderview?id=0B6JIYSBkLkAnMC13ZVZqekpuRjA&usp=sharing&tid=0B6JIYSBkLkAnTTZYd3Z4ZTMzV3c)

Before all of this validation I thought the same thing and when testing I simply thought to send "hello there". It kills the client off with a disconnect due to an exception because `hello there` was not valid JSON. The vanilla server does a much better job than what is done here, but that is because it has actual classes to serialize into and therefore validate. 

**TL;DR** The client hates you if you send it bullshit.