A visitor that traverses the node structure

Instead of the node structure itself doing it. Also, associated
benchmarking code