Respect the version of a direct dependency

Prior to this commit, dependency management would override the version
of every dependency, even ones declared with a version directly in the
build script.

This commit updates the plugin so that a direct dependency that’s
declared with a version will take precedence over any dependency
management. Furthermore, the version of the direct dependency will be
the version that’s used even if the same dependency is pulled in
transitively with a different version. In effect, direct dependencies
that are declared with a version provide dependency management for
that dependency.