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.