Added multiple level formats support, implemented McRegion

This branch adds a way to select between different formats from the settings, setting names and abstracting more things. **This bumps the API version to 1.2.0 (backwards-compatible)**

It also adds the McRegion format, that uses a different block order (like LevelDB). This is a temporal workaround for the CPU peaks when players join, allowing to send chunks directly without the need of conversion.

### Work to be done
* [x] Add a way to work with full chunks instead of ChunkSection[]
* [x] Remove SimpleChunk classes, move to binary-encoded chunks.
* [x] Level format block order detection, so the server chooses whether convert or not convert
* [ ] Add integrated world format conversion
* [x] Work on threaded generator to support both block orders
* [ ] Research world generation being slower