Allow Clojure tasks to be run with a JavaToolchain

Desired Behavior

When a project uses the Java toolchain feature, we should configure all Clojure tasks to use that same toolchain.

java {
  toolchain {
    languageVersion = JavaLanguageVersion.of(8)
  }
}

This implies all Clojure tasks having a JavaLauncher property exposed on them for us to use to configure the Java executable. It may make sense to also expose a toolchain spec from the Clojure/ClojureScript extensions.

Context

For those not aware, this feature allows decoupling the JVM version used by Gradle and the JVM used by tasks it runs. See Gradle's docs.