Started directed graph nodes.

Need to figure out how to lazily evaluate so that when you pass in
conditionals you can reevaluate them with the same arguments i.e operate
on changing member variables the same way every time. Perhaps closures
will work.