Uses the new Java toolchain feature of Gradle to acquire Java 17.
Doing it this way means that you can start ./gradlew under any version
of Java and still use Java 17 for the build; it picks a candidate from
the environment or downloads one if required. It also takes care of
source and target compatibility, with the exception of ide.gradle
which is handled separately.
This commit removes the propdeps plugin.
"provided" configurations are replaced with "compileOnly", "testCompile"
configurations.
The "optional" configuration supported by propdeps is now replaced by a
local Gradle plugin defining a specific configuration for that.
As a result of that change, optional/provided dependencies are not
published with the POMs anymore.