This uses a simple (non-crypto!) hash function to hash non-number
strings to a number. Existing seeds are *not* affected - they will still
work as before.
Specifically, I'm unsure about whether I'm happy with the effects of the
algorithm.
Also, we convolve with a 3x3 gaussian kernel after erosion is complete -
and we have verified that the erosion is having an positive effect at
"roughening up" a terrain surface.
It seems like the initial blog post was correct: the algorithm does tend
to make steep surfaces steeper.
It also appears that it's more effective on larger areas, and 'gentler'
curves. THis might be because the surface normals are more conducive to
making the snowballs roll.
Finally, we need to decide whether we want to keep the precomputed
normals as we have now, or whether we want to dynamically compute them
at the some of request.
Next we need to implement a worldedit function to handle fetching the
manip data, calculating the heightmap, pushing it through this
convolutional system, and saving the changes back again.