Add new method to World: num_adjacent
I realized that it would be more appropriate to ask the world how many
cells are adjacent a given one. The world may store data in such a way
that the number of adjacent cells can be obtained in less than O(n)
time. The current plan for the default world is that on every add or
deletion of a cell update a count on all surrounding cells. This will
increase the time it takes to add or delete a cell, but greatly decrease
the time to check adjacent cells. Generation time should go down to 25%
of previous.
Add default implementation of num_adjacent, and prevent zoom from going
negative.