Discussed changes for the World Generation API

Here are changes resultant of a discussion on IRC relating to the recent commit e93c0919e0bf4.

List of changes:
- `Server#createWorld` changed to not return an Optional, and additional versions created
- `BiomeManager` was renamed `BiomeGenerator`, and was functionally modified.
- `BiomeArea` was created to represent an area of biomes, mutable and immutable versions were also created.
- `BlockBuffer` was modified to use `BlockState` rather than `BlockType` to support metadata values.
- `BiomeVolume` was reworked to return a `BiomeType` rather than a `Biome`, and to include a setter for biomes.
- `Biome` was removed.
- `Populator` was modified to take a `Chunk` rather than a `MutableBlockBuffer`.
- `WorldGenerator` was clarified.
- `World` was modified to remove the `getBiomeManger` method as it was confusing and superfluous.
I still dislike this array of possible biomes to use.

What is stopping someone from looking it up from world or game? Why even have this array?