Introducing edge-based versions of AStar, Dijkstra,
DijkstraBidirectionRef and AStarBidirection. 

In order to share code, the present routing algorithms can now switch
between both node-based and edge-based behavior. Tests of those
algorithms are executed for each of the traversal modes using
parametrized tests.

Additionally, the adapted algorithms now consider turn
restrictions/costs if the graph stores them in its extended storage.
However, tests for turn restrictions/costs have not been written yet.