Used Dan's code to customize the graph layout.

Now drawing the graph using the individual routines that generate the
coordinates, then use those coordinates to place the nodes, draw the edges, and
write the labels.

Currently this code generates new graph positions every time. At some point we
ought to chose one version of these coordinates and save them into a file that
gets to be put under revision control. The current code has the instructions to
read that file and feed the content as coordinates for the graph nodes.