Extract interface GraphInterface from UndirectedGraph
remove unused bits
Add Digraph class.  Adapt find route in undirected graph code to  work for UndirectedGraph and Digraph.