Moved the artifact definitions for Ivy and Maven metadata from the legacy `ModuleDescriptorState` onto the relevant metadata types. The Maven metadata always includes a single hard-coded artifact, so don't persist the artifact definitions for Maven modules. Changed the Maven metadata implementation so that the Jar artifact is attached to the 'compile' configuration and is inherited by the other configurations. Previously the artifact was attached to the 'default' configuration.
Incremented the cache layout version to reflect the changes to the persisted metadata.
Mixed the metadata parsed from the Gradle module metadata file into the metadata parsed from the POM and persist this into the metadata cache along with the other data. This change makes the metadata available to dependency graph and artifact resolution, however it is not yet used by these. This will happen in a later change.
Incremented the artifact cache layout version due to this change.