Terrain generator

Initial pull request, I'll keep adding stuff as we go along