Now allows for non-square heightmaps, plus fixes for loading from/saving to file.