Use the descendents_tracker gem

The gem handles threading and some other edge cases. It's a small gem so
it makes sense to use it rather than reimplement.
Merge pull request #9 from 25-ventures/refactor/descendant_tracker

Use the descendents_tracker gem