Split Server from Game

Add API for a few other typical Server attributes

Signed-off-by: Chris Sanders <zidane@outlook.com>
Fixed Direction
Use flow-math for vectors
Improve Javadocs for api.block.*.
Make ConfigFile.withValue() return a ConfigFile.
Create the parent directory when saving a ConfigFile.
Provide service to get configuration and gut PreInitializationEvent.

Events should not be plugin-specific (even though state events are in
our implementation, but that is an implementation detail).
Give EntityType a getId function
Rename getMaxFireTicks, it had a very incorrect name for what it does
Updated GameRegistry for Item and Block lists.

* Changed getBoundIP to getBoundAddress in Server.
* Added getMOTD to Server.
* Removed getPort from Server as this will be accessed through the
INetSocketAddress.
Change getMOTD return value from String to Message.Text
Don't use var args for Iterable in sendMessage
Change getDisplayName() to return a formatted message instead of plain text
Do not normalize the zero direction
Mark config annotations as binding annotations for guice
Improve Javadocs on the configuration service.
Rename @Config to @DefaultConfig.
Add missing package-info files.
Fixed a few wrong names in ItemTypes.

Due to the reflection method we use in our implementation, we need to make
sure the ItemType names match up with the names stored in item registry.
Add unique IDs to tasks