Use graphviz subgraph node/edge calls

Subgraphs should use agsubnode and agsubedge to avoid creating new nodes and edges in the graph.

Addresses #28