Fixed StructureGrowEvent restore after event cancel.

Tree generation will no longer modify world until after StructureGrowEvent
is called and event is not cancelled. This maintains same functionality as
it had with StructureGrowDelegate. This also fixes sapling and mushrooms
not growing properly in some cases.