A ``distinct_parents`` kwarg was added to
``get_queryset_{descendants|ancestors}``. To summarize: this option
forces those functions to only use nodes that have distinct parents when
calculating the ``Q`` object that gets passed to ``filter()``. This
significantly reduces the time it takes to run the function -- in some
cases (based on this afternoon's testing) ~50% or more. It also reduces
the number of SQL variables that end up in the query. The number of SQL
variables can become an issue when using databases like sqlite which
limit you to 999 variables, for example. All tests are passing, although
admittedly, the queries used to test this modification aren't
representative of what you'd see in the real world. I plan on doing a
more thorough writeup with real-world examples before I push this repo.