Changed `ModuleVersionRepository.resolve()` to accept a Gradle `ArtifactIdentifier` instead of an Ivy `Artifact`.
Introduced ModuleVersionPublishMetaData, to package up the meta-data required to publish. This is a possibly temporary type to detangle publisher from Ivy types.
Changed ExternalResourceResolver so that it implements ModuleVersionPublisher directly, rather than treat it as a DependencyResolver that can publish.
Added some more coverage for ivy configuration mapping expressions.
Added ModuleVersionPublishMetaData.getModuleDescriptor() and merged the implementations.
Changed ModuleDescriptorConverter.convert() to return a Gradle ModuleVersionPublishMetaData instead of an Ivy ModuleDescriptor.