Add `status` to Gradle module metadata This commit adds attributes to top level component in Gradle metadata. Attributes are written to Gradle metadata files, and when read, some attributes can be mapped to existing, legacy, properties of component metadata. This is the case for the "status" property, which is now mapped to a component attribute when serializing, and mapped back to the "status" property when reading.
This commit also introduces a test that makes sure that the status is actually read from the Gradle metadata file, by totally ignoring the Ivy descriptor.
Remove `getVersionConstraint` from `Dependency` We will at some point deprecate `getVersion` on `Dependency`, which is nullable because it doesn't always make sense (ex: project dependencies). So instead of having version constraints on dependency, it will only be introduced on the relevant type (external dependencies only).