Working on using an Edge class.

* Many changes: Edge trait hierarchy, Graph classes take
  edge type
Simplify edge types hierarchy, which massively simplifies graph search.
Get tests to pass.