Refactoring MapProjection to split out ElevationProjection

Adding LinearElevationProjection as the implementation.
Simplified configuration format.

Config format changes:
* Coordinates are given as simple [lat,lon] arrays, not dictionaries
* Classes are represented as Class: {param:...} dictionaries, not type:/parameters:
* Classes are automatically detected, allowing easy extensibility
* Most parameters have reasonable defaults

ConfigManager:
* Added Configurable interface. Any implementing classes can be automatically
  initialized from their config parameters.
* Removed specialized functions from ConfigManager, replacing them with generic versions
  which use reflection to complete initialization
* Initialization code now located in the relevant class
Adding BiomeProvider & 2 implementations

2 Configurable Biome providers
* DefaultBiomeProvider, which uses MC defaults
* WhittakerBiomeProvider, which uses basic latitude & elevation information
Adding shade excludes

This reduces warnings while packaging considerably.
Fixing /ecpos command to display elevation.