Add iterators to path finding

Both AStarPath and DijkstraPath now have a `walk` method that returns an
iterator which consumes the path.