Level refreshing when changing water level in options/

Basically, this commit splits up level rendering so that changing the water level in single-player options does not cause the entire map to be refreshed, only the map edges and sides.

(Apologies for the double commit, but I'd originally written the code before length and height were changed.)