cyclegraph/model: unify, clean up graph printing
This fixes several things:
1) The rf edges now are directed properly
2) Read-from-promises show up in the graph
3) ModelChecker uses the same code as CycleGraph for printing a
CycleNode or graph edge
4) Graphs are more readable; I put a large weight on the
sequenced-before edges, causing graphviz to try to make these edges
"shorter, straighter and more vertical" [1]
5) Use the 'SnapshotAlloc' STL allocator for CycleGraph::nodeList
[1] http://www.graphviz.org/doc/info/attrs.html#d:weight