Changed from array based backing to hash based for greater speed and to support infinite canvas
Removed the adjacency tracking as activeness tracking makes it less useful
using native js objects to represent state, hopefully for perf improvmenets
Changed index key from complex object to integer.
small bug discovered relating to toggled nodes not being registered as active
Recentered the index key generator to deal with bugs at two edges of the map.
Transferred the controls over to ReactJS
Added basic cycle detection.