Extracted mutability to own abstract class
Renamed AbstractBaseGraph to AbstractMutableBaseGraph
DirectedGraph should also be a Graph
Traversal now works for unmutable graphs