Implement asynchronous chat support.

This is like the support from Bukkit, which dictates asynchronous chat only for chat messages from the network.

This is my first contribution to Glowstone, so please don't bite hard.
What? You mean the way the diff was split?