Introduce a `JAVA_API_JARS` usage This commit introduces a new `JAVA_API_JARS` usage, mirror to the `JAVA_RUNTIME_JARS` usage. This is both for consistency, and to make sure that the `JAVA_API` and `JAVA_RUNTIME` usages are limited to cases where the consumer doesn't care, or when a producer doesn't have a more specific usage to provide.
This is, for example, the case for Java platforms. It's worth noting than in case a producer mixes both "generic" usages and "specific" usages, selection is likely to produce unexpected results, because of disambiguation rules.
The Java disambiguation rule has been simplified and now supports more cases.