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).
Added a DefaultLocalArtifactIdentifier and changed DefaultLocalComponentMetaData to use this.
Changed ModuleVersionArtifactIdentifier so that it must have an associated module version component (rather than an arbitrary component type).