Add support for generic libgraphviz layout

The new function, graph.graphvizLayout(g), returns a Tensor of size (n, 2)
containing the positions of the nodes in the recommended layout.

This allows one to take advantage of graphviz's layout algorithms
without being tied to graphviz's renderer.