make Traverser abstract class

I am trying to figure out a design to combine all the searches. All
searches extends Traverser, and call fetch(Traverser t), which calls
findNodeLst(Traverser t), which uses t. process() to do different kinds
of searches. This is a rough idea, and will be further considered more
carefully