Changed ResolveIvyFactory.create() to take the repositories as a parameter instead of injecting them, and so that it doesn't need to know about Ivy DependencyResolver. Given this, moved a bunch of services up so that they are reused for across the build rather than per resolve context. Also made some tweaks to the ArtifactResolver hierarchy.
Removed ResolverProvider and deprecated ArtifactRepositoryContainer.getResolvers().