Fixes issue with disjoint set logic concerning async_union_and_execute being able to execute with items that didn't actually cause a merge due to splicing in Rem's algorithm. Moves to simpler interleaved traversal with path splitting for compression and union by rank.
Fixes issue with disjoint set logic concerning async_union_and_execute being able to execute with items that didn't actually cause a merge due to splicing in Rem's algorithm. Moves to simpler interleaved traversal with path splitting for compression and union by rank.
Further optimizations likely to come.