Most of the utility graph functions we have can
be connected to a directed graph class that itself
derives (and adds on to) the networkx base class.
Doing this allows for functionality that isn't exposed
in networkx to be exposed in our subclass (which is a
useful pattern to have).
It also makes it possible (if ever needed) to replace
the networkx usage in taskflow with something else if
this ever becomes a major request.
Change-Id: I0a825d5637236d7b5dbdbda0d426adb0183d5ba3