make World.topology protected

in preparation for Scala conversion
light refactoring of topology code

in preparation for simplifying neighbors handling
neighbor/topology cleanup

eliminate redirection through Patch for neighbor methods
fix #143 (incorrect neighbors agentsets when max-px/ycor = 1)

also, throw out a lot of repetitive code and replace it with
short simple code.  the short simple code may be slow, but we
don't care because the results are cached.