First steps: factor out strongly_connected_component method into an abstract base class.
Fix snapshot test.
Move ancestors and descendants definitions into base class.
Move difference operation to abstract base class; add subtraction operation.
Move __iter__, __len__, __contains__ into base class.
Move __repr__ to base class.
Make DirectedGraph private constructor more obviously private.
Move 'references' to base class.
Reorder methods; start removing use of id_digraph from ObjectGraph.
Remove more uses of _id_digraph.
Fix to_dot for ObjectGraph.
Remove unused DirectedGraph import.
Fix ObjectGraph.owned_objects.
Initial implementation of AnnotatedGraph.
Add JSON serialization.
Fix up tests.
Remove unused function.
Add test for children, parents
Fix AnnotatedGraph.from_json to use the correct edge head and tail.
Implement to_dot.