Grid struct gen

This refactors the generators' code to use an ancestor class with the code common to all - the `cGridStructGen` class.

Note that this PR will likely change how world is generated, so the newly generated chunks won't fit to the already existing chunks from previous versions. This won't be too visible on the surface, only the structures (caves, ravines, mineshafts etc.) are affected by the change.