untyped the arguments in building predicate nodes.
fixup some minor issues.
overloaded ToString() on Node.  Added NodeOptimizer.
refactored node optimizer into individual optimizations that get run recursively.
added in not optimization.