Strongly connected components

This patch closes the `TODO` in connected components by adding an iterative and recursive version of Tarjan's algorithm for computing strongly connected components.

I'd appreciate any feedback.

Thanks,
David