Obstacle snap to node

when you drag to create obstacles, walls now snap to nearby other nodes.

fixes the doubly-added wall bug

fixes bug in fromJSON for graph that was also creating too many walls