simple function to detect 1d loops at the given node.
cfg: add reachable definition/predicate.
cfg: add tests for reachability definitions.
generalize shell script to take argument.
cfg: add crappy unusable reachable defs

will need to recurse intelligently at some point.
add test programs for playing with CFG.
cfg: add loop detection/distance calculations.
make main slightly less disgusting.

by adding some arguments and splitting out some stuff into functions.