merge #213 credit to @lexware
Change AsyncPlayerChatEvent to PlayerChatEvent.

This change requires that the underlying event system can also have handlers registered for parent event classes of an event class.
Add Game.getServiceManager().
Fix build-breaking Javadoc errors.
Add ServiceManager.provideUnchecked() and ProvisioningException.
Add Game.getCommandDispatcher().
Move registerCommand() from Dispatcher to CommandDispatcher.
Add helper DescriptionBuilder class.
Remove Future, it doesn't make sense for repeating tasks.
Change anonymous class in DescriptionBuilder to an inner class.
Make Game an abstract singleton
Revert "Make Game an abstract singleton"

This reverts commit f5554865759bc4227ee5f1a56d5f5932aae15698.
Added ability to load and unload chunks.
Remove unecessary Optional from provideUnchecked in ServiceManager
Add OfflinePlayer, ItemEntity, Update Entity, Player
Fix License, Javadocs
Moved ItemEntity, and made Player extend OfflinePlayer.
Added all living entities, and a few projectiles.
Modify package structure
Rename getUniqueID -> getUniqueId