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.
GRADLE-2666: Don't process Gradle plugins and extensions when calculating pom model
Integ test for resolving Ivy dynamic versions with multiple ivyPatterns specified
ExternalResourceResolver no longer implements ivy DependencyResolver
- Introduced separate methods to RepositoryArtifactCache to replace the RepositoryCacheManager methods for ExternalResourceResolver
   - The existing implementations will still be used for native ivy resolvers
- Wrap ExternalResourceResolver in a DependencyResolver for use in parsing (until we switch parsing to Gradle APIs)
- Removed a lot of cruft from ExternalResourceResolver that is no longer required
HTTP-aware version test for resolving 'latest.milestone' against an ivy repository with multiple ivyPatterns
cleanup some archive related tests

- REVIEW-2446/REVIEW-2451: Add more assertions to the duplicateStrategy integration tests
- REVIEW-2446: fix assertZipContainsOnly and move to ZipTestFixture
- REVIEW-2446: create explicit TarTestFixture
- REVIEW-2446: create explicit JarTestFixture and close jarFile properly
Declare the distribution zips as inputs to the integ test task of the distributions project.
Improved algorithm for resolving a dynamic version when a repository contains multiple ivyPatterns
- VersionList now contains the ResourcePattern where a version was loaded from, as well as the version itself.
- ExternalResourceRepository lists all available versions before sorting them and assessing which is the 'latest'
Started to tidy up the way that ExternalResourceResolver uses the cache-manager
- Moved parsing of module descriptor files out of RepositoryArtifactCache and into ExternalResourceResolver
   - Tweaked the implementation so it does just what is required
   - Native dependency resolvers continue to use the CacheManager as-is
REVIEW-2441: Check existence of lib.exe for VisualCpp toolchain availability
REVIEW-2440: Updated test for now auto-imported packages
Update publication-model.md
Further spec updates for multiple publications from a single project
REVIEW-2482: Improved DSL docs for IvyPublication
- Moved javadoc comment 'setArtifacts' into getter so that they are rendered correctly in DSL doc
- Removed separate 'setArtifacts' method from DSL doc
Release notes and user guide docs for customising publication identity