Added ender portal support (see #325).

Adds awardAchievement variant which only awards the achievement if its
parent has already been awarded. Fixes some desyncs with world switching.
Implemented basic damage functionality, including drowning.
Fixed color wrapping by converting flat messages to json.
Add BlockStateDelegate
Add TreeGenerator
Add HugeMushroomGenerator
Link GlowWorld.generateTree() method to the new generators
Change TreePopulator to not call TreeGenerator.generate() directly (bypass StructureGrowEvent)
Changes to generators, fix the block states list