Adds Bloom filters as an alternative in order to keep track of the
urls visited.

Bloom filters is much more efficient than a hash set in terms of memory
and time. This implementation, on the other hand, has a cost. It may
give false positives when contains method called, which means it might
say true for the urls which are not actually visited. It does not give
false negatives.