hard dependency on gv lib. graph object instead of text representation. neato layout options.

I know that I have access for a direct merge, but I didn't want to force a new dependency without approval. I think that requiring the gv library will give us a lot more flexibility and reliability when building more complex graph structures for additional information.