Fix benchmark script

Previously we removed DOT parsing from graphlib, but the dagre benchmark
depends on its functionality. Now we get it from graphlib-dot.
Pull in graphlib v0.5.7
Use CDigraph for layout

Also initialize graph value to {}.

We don't yet support compound graphs for layout, but this is a small
step in that direction.
Some order phase rework in prep for constraints
Simplify sort for nodes with no adjacencies
Add support for ordering constraints

Fixes #84
Improve performance of constrained ordering

By avoiding the graph copy we speed up the algorithm by almost 10x!