mapgen: Split map_colatitude() into separate functions
Required for #44036. Split map_colatitude() into
Splitting the first and second should also enable actual singlepole torus maps with no added effort.
Note that this patch does change the resulting colatitude a bit (because floating-point numbers aren't great for this, and because trying to emulate the old behavior would've made for rather ugly code), so old seeds will not result in exactly the same map. More specifically, colatitude will generally be a little bit lower than before. In particular, the colatitude will generally not actually reach MAX_COLATITUDE anymore on maps with even dimensions, since the exact equator ends up between tiles.