Switches to concurrent hash set
Merges reachability changes from experimental branch.
Makes the added reachability index methods simpler.