spec: More succinct formatting of TestResult

Without this, the leaves in symbolic execution graphs are too long to
read.
simsym: Support user-defined "note" schedule nodes
spec: Record current call sequence as notes in the schedule
simsym: Add generic graph abstraction; use for schedule graphs

This splits the ad hoc and rather confusing schedule graphing code
into a simple, generic graph abstraction and a little bit of
schedule-specific code.  Previously, the relationship between nodes
and the dot graph was surprisingly complex (e.g., nodes were named by
their edge source but labeled by their edge destination).  The
abstraction forces us to be explicit about weird things.
graph: Add support for grouping nodes in ranks

I used this for an experiment.  It's not currently used by the
schedule grapher.
spec: Terminate test more consistently

Previously, we terminated the commutativity test as soon as we found
divergence in some cases, but not others.  Fix this so we always
terminate as soon as we find divergence.
simsym: Let the caller disable eager equality simplification

This is disable by the poster's execution graph generator, which
results in confusing graphs if we short-circuit some of the symbolic
branches like this.
tools: Support circles
tools: Fill/stroke keywords for text
tools: RGBA color support
TASKS: Complain about monolithicness of spec