Moved some int tests from integTest project to maven and ivy projects.
Changed AbstractMavenResolver so that it implements ModuleVersionPublisher and so will be used as such for publishing rather than as an Ivy DependencyResolver.
Extracted MutableComponentMetaData out of MutableModuleVersionMetaData
Moved some methods up from ModuleVersionMetaData to ComponentMetaData.
Javadocs.
Changed ArtifactResolver.resolveModuleArtifacts() to accept a ComponentMetaData instead of a ModuleVersionMetaData.
Added ComponentMetaData.artifact() to allow conversion from Ivy artifact view to Gradle artifact view.
Changed ModuleVersionResolveResult to deal with ComponentMetaData instead of ModuleVersionMetaData.
Renamed ModuleVersionResolveResult to ComponentResolveResult, and renamed subtypes accordingly.
Replaced module version with component in a few places:

- ConfigurationMetaData.getModuleVersion() -> getComponent()
- DependencyMetaData.getArtifacts()
- Use ComponentMetaData.artifact() instead of constructing artifact implementation directly in several places.
Extracted an abstract ComponentMetaData implementation out of ModuleDescriptorAdapter and use this in DefaultLocalComponentMetaData. This will allow the local meta-data to no longer implement ModuleVersionMetaData (it still does for now).
Pushed construction on ComponentArtifactMetaData instances down to ModuleDescriptorAdapter and DefaultLocalComponentMetaData so that they can use different implementations.
More checks in test on results from IdeaDependenciesProvider.
Added ModuleVersionArtifactMetaData.toIvyArtifact() and ModuleVersionArtifactPublishMetaData.toIvyArtifact() and use these instead of constructing Artifact instances directly.

- Removed ModuleVersionArtifactMetaData.getModuleVersion() as it is no longer required.
Don't need two separate ids for local artifacts any more.
Forgot to commit this.
Changed ModuleVersionMetaData.getComponentId() to return a ModuleComponentIdentifier.
Javadocs.
Remove some stuff that wasn't being used and was failing on the IBM jvm.
Don't need to lookup the project component metadata during artifact resolution, as the artifact meta-data has everything we need (ie the file).