Distance visitor

This PR provides classes to visit a graph according to a distance function. It is thus a generalization of BreadthFirstVisitor, but vertices are visited according to some functor distance. Of course, a certain consistency is required between the graph neighborhood and the distance function.