Add a getMinecraftVersion() method to the ProtocolManager.

This can be useful if you want to implement different read/write 
methods for each version of Minecraft.
Add support for the new JSON chat message format. FIXES Ticket-109

In addition, the PacketConstructor can now handle non-wrapped objects,
along with Class types instead of instances in withPacket().