Improved diagnostics to show when a candidate had unsatisfied restrictions

When listing rejected candidates, check to see whether they have dependencies
which conflict with a selected implementation, and show the restriction causing
the problem if so.