Dependency handling library

This is the bare bones of a test dependency handling library, but it's already useful IMHO.

Also, it accompanies a couple of `software_manager.py` bug fixes found in the development process.