Fix VirtualBiomes

The biome cache stores BiomeBase instances. The id of the BiomeBase
instance has to be the saved id. We now store the generation id in
CustomBiome, which extends for it, and use it in our cache wrapper. I
should probably try to replace the cache wrapper and Minecraft's
BiomeBase cache with a new cache implementation, created on our own.

The second problem is that world.getBiomeId always returns the saved
biome id. This makes is useless for getting virtual biomes, as
getBiomeId always returns whatever happens to be in the current chunk
data array. getBiomeId calls have now been replaced by
getCalculatedBiomeId calls. However, this will break maps created with
external biome editors, like WorldPainter, that are populated using TCs
biome populator...