Improved traversers

Added abstract class QueueBasedTraverser holds general logic for most
traversers.
Fixed errors in InfoKeepers.
Added InfoKeeper that uses IntToBoolean fastutil map to store Boolean
values.
Changed BreadthFirstTraverser so that first node is the node we start
traverse from (to be consistent with other traversals).
It's a bit different. Here it works in two steps. First: findNextToVisit dequeues nodes that have been visited already and returns id of the first unvisited. Second: we dequeue the node and visit it.

I used processNode method to avoid code duplication (see the update)