cfg: abstraction for defining creating a node.

i added yet another field to node, thus necessitating me changing
every damn place i make one with an additional 'nil' argument.
for testing and the like, most of the time when we create a node,
we only care about a couple fields... and we have to update that
code with every field we add.

so let's just have a function that creates nodes and use that.
cfg: move 'smooth2' test graph creation fqn out of loop test.

not technically reliant on the code there.
cfg: remove lame/bogus print from test.
cfg: move more general fqns to testsetup.

just to make it clearer that they are shared.
cfg: add dominance calculation functionality.

a bit of a strange formulation, but works nonetheless.
cfg: remove dead code
test programs: fix unused var/stupid function name.