Switch Precedent to hash set if there's a large number of dependts

Additionally, for small number of dependents, Precedent now uses array instead of linked list