Layer Bits Reorganization

... in preparation for BiomeGroups
Biome Group Visualization made easy for testing
I don't know why...

but it bothered me >.< all these capitals...
We are SUPER close to done with this commit.

=== NEW ===
- Introduces functional BiomeGroups
- BiomeGroups have a generation depth and rarity like biomes
- BiomeGroup rarity uses a new, better way of handling rarity, Biome
rarity now uses this new method as well as it doesn't really break old
worlds.
- Frozen Ocean seems to be spawning in a much more consistent manner

=== BUGS TO FIX ===
- LayerLandFuzzy is now not as effective at Fuzzy-fying land due to the
existence of BiomeGroups
- My BiomeGroup defaults are a little bit off...
- Probably more that I haven't found yet

=== THINGS TO ADD ===
- Add a setting similar to BiomeRarityScale for BiomeGroups
Oops... Doc Clean-up
Closer but no cigar :\
Well, I figured out why fuzzy is broken...

but there simply isn't a way to fix it without rewriting A LOT of the
layers system...
Some Initial Docs
Missed a sorted
Merge branch master into BiomesGroups_Simple

Conflicts:
	common/src/main/java/com/khorn/terraincontrol/configuration/WorldConfig.java
	common/src/main/java/com/khorn/terraincontrol/configuration/WorldSettings.java
	common/src/main/java/com/khorn/terraincontrol/generator/biome/layers/Layer.java
Put /tc map on the server thread

Lags the server, but better than crashing.

The combination of biome groups and the new config code made the biome
generator even more thread unsafe than it already was. Running /tc map
on another thread is no longer acceptable.

Making the biome generator thread safe is very difficult. Synchronizing
on it all the time could work, but creates a small, unneeded performance
penalty.
Merge remote-tracking branch 'origin/master' into BiomesGroups_Simple
Move registration of BiomeGroup(...) to ConfigFunctionsManager

BiomeGroupManager can be instantiated many times (one for each world)
which would cause the function to register multiple times.
Support reloading of biome groups
Allow custom biomes in BiomeGroups; little code cleanup

Due to a bug custom biomes were removed from BiomeGroups. The biome
names are now checked later on.

Empty groups will now automatically be removed.

Removed a few methods, renamed a few others and added JavaDocs to most
methods.
Preparations for new BiomeMode

A new biome mode will soon be added to simulate the old pre-biomegroup
behaviour. A little bit of refactoring is useful for this.

To avoid code duplication an abstract LayeredBiomeGenerator class has
been added. NormalBiomeGenerator and FromImageBiomeGenerator now inherit
from this.

BiomeMode:FromImage is no longer handled by special cases in the biome
code. The Layer creation code has been moded to a new class,
LayerFactory.
Don't use biome group id 0

I haven't yet tried to find out why, but the id 0 is not a valid biome
group id, and causes the group to not generate at all. I suspect it's
used as a null value, instead of the often used -1.

Also removed a parameter from the isRoomForMoreGroups method, parameter
was not used.
Start of biome mode BeforeGroups to simulate the old behaviour

The biome mode already looks promising; maps look closer to the
original. Some more changes are needed. Also, it is not yet documented,
nor is it turned on automatically for old maps.
Remove some dead code

If it's actually useful it can easily be readded.
Don't allow duplicate groups

Previously, the second would overwrite the first without warning,
leading to strange behaviour.