A grid graph implementation

Extend previous branch with GridGraph, a grid graph implementation, supporting O(1) access and a random access iterator interface.
don't inherit from std::iterator but define the types manually!