Found an important corner case

When using the new algorithm on real data, I found several issues.  The first is that the
quality of the 'input data' is a real issue (dependencies to unknown libraries, libraries
that depend on themselves, etc).  The second is that libraries that depend on themselves
actually give me trouble (currently).  I fixed a crash that resulted from such things.
Now such cases return an error.  But I really need to figure out how to handle these more
gracefully so I added a test case.
I'm starting to use the new algorithm in parallel with the old

This will allow me to check the performance of the two algorithms side by side and has already
help me identify some corner cases.