Optimised noise generator.

Updates the PerlinNoise class to use semi-2D noise.

On my machine, it approximately reduced the time to generate a medium sized world from 3 to 2 seconds, and a large sized world from 12 to 9 seconds.