Another round of micro-optimization.  Startup at 1.1s now, down from 1.5s.
Python 3.2 (and PyPy 3) compat.
Rewrite flooding algorithm to be way faster.

Previously I was storing and collecting neighbors, which involved a lot
of sorting or editing lists in-place.  But I realized that every point
*must* either be a local minimum or be adjacent to a lower point!

So now I just iterate over the points in order from lowest to highest,
and only examine neighbors who have already been flooded.  Cuts like
0.2s off of map generation.