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 will not work.
The problem is there are no JavaConversions from jutil.Map[Int, jutil.Map[*, *]] to scala.Map[Int, scala.Map[*, *]]. They just don't work recursively. To do it, we would have to write a new scala.collection.JMapWrapperLike that would be able to wrap inner map also.