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).
this file looks identical to IntInfoKeeper. Consider changing InfoKeeper to be parameterized only by `O'. `I' does not seem needed (is always Int in our setting), and M could be replaced by java.util.Map[Int, O] The code can be reused across IntInfoKeeper and BooleanInfoKeeper with the only differences being specification of Int/Boolean and Int2IntOpenHashMap/Int2BooleanHashMap