Reworked to put less demand on the stack.

I was running out of stack space for some data set, and this solves it. I had to rework the basic algorithm to work with an explicit stack and a loop rather than with recursion, and make sure that sccAdjList wasn't constructed by calling apply with a huge list.