Adds NodeVisitor for easy iteration through control graph nodes

Issue: #32
Adds global node index parameter to aid iterators

std::set<> container stores items in an particular order
which is determined by provided comparator or default std::less.

We compare nodes by their indices that are sequentially assigned
by ControlGraph upon node creation. See the NodeIndexCompare functor.

This ensures that node iterators and visitors will provide nodes
in sequence of their creation or in other sequence which may be
defined by re-setting the index field of nodes to a custom values.

Issue: #32