Fixing grid edge-case

Fixes the bug which caused a failure when trying to get neighbors from
edge cells in a non-toroidal grid.
Fixed bug, and more

Fixed the big, and made the MultiGrid more elegant by removing most of
the duplicate code.
Merge pull request #53 from projectmesa/dmasad.ticket51.gridfix

Dmasad.ticket51.gridfix