Handle packages with invalid package descriptions gracefully and improve diagnostic output.
Avoid exponential run time in the dependency resolution algorithm if possible.

When going through all combinations of package versions, all sub trees of the search space are now skipped for a conflicting node, as those are guaranteed to conflict anyway.