Clean accepted API changes
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`
When test fixtures are enabled, the test fixtures API automatically
gets a dependency onto the main component (aka `src/main/java`).