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)

Is there a need to validate this? (to avoid client crashes, for example?)

Because, for example, `["1", "2", {"text": "3"}]` displays as "123" and is perfectlyvalid, but would get rejected by this. There's also `{"selector": "@a"}` (replaced by players) `"translate"`, `"score"`, see here for more details:

http://wiki.vg/Chat#Current_system_.28JSON_Chat.29

So IMO it's better to not validate this.