Fix backwards compatibility of new Java configurationsWhen a `java` or `java-library` project is referenced from another projectthat doesn't know about the `usage` attribute, then all runtime dependenciesneed to be exposed. This is necessary e.g. when packaging EARs or applications.At the same time we want to have the minimal set of leaked dependencies forconsumers that do know about `usage`. The solution is to move the `apiElements`configuration up to the `java` plugin and let it contain `compile` and `runtime`for backwards compatibility. The `default` configuration contains everything on the`runtimeClasspath`.Once `compile` and `runtime` have been removed in some future Gradle version,we will have exactly what we want: An empty API for `java` projects and onlyexposing the `api` configuration for `java-library` projects.