Perlin Noise

This was taken from the internet and is protected by copyright, it's
fine if we done commertialy distribute this I think. Perlin noise is
hard :(