When checking deps, handle transitive jar deps properly.

If a JarDependency target provides a jar, it should also be considered
to provide everything that jar depends on, transitively.

Previously we weren't handling this properly, as we were assuming
incorrectly that ivyinfo.deps_by_caller included transitive dependents.

Now we handle it properly, taking into account the fact that ivy
does allow circular deps.

This fixes spurious missing deps errors.

Auditors: pl