Add support for Java test fixtures This commit introduces conventional support for _test fixtures_ in the Java ecosystem.
The `java` extension, available when applying either the `java` or `java-library` plugins, now adds a couple of methods:
- `enableTestFixtures`, which will create an additional source set for test fixtures - `usesTestFixturesOf`, which declares that this project makes use of the test fixtures of another project or external module
This feature builds on top of the existing feature variant infrastructure, which means that:
- test fixtures are published (as optional dependencies in Maven, as variants with Gradle metadata) - test fixtures have a conventional capability
The capability for test fixtures is `test-fixtures`, so it means that if the project has a name `foo`, then its test fixtures would be published with a capability name of `foo-test-fixtures`.
Test fixtures expose an API and an implementation, available through the `testFixturesApi` and `testFixturesImplementation` configurations.
When test fixtures are enabled, the test fixtures API automatically gets a dependency onto the main component (aka `src/main/java`).