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