Diamond Square and Optimizations

Diamond Square should now work absolutely perfectly. And also spent
hours optimizing the code in profiler and whatnot to make sure it is as
fast as I can get it to be without going a little to insane (there was
this chance to make another container to hold areas but I may or may not
do that, I don't think a 0.1ms improvement would be worth the trouble)