Respect rules_java as the source of truth for java toolchains (second try)

Rolling forward https://github.com/bazelbuild/bazel/commit/975866a3e09212766bd353a90a8c42efe91d53ab (which was rollbacked at https://github.com/bazelbuild/bazel/commit/d51c75f3ee05a0671474ac1716ee4db25e775157) with fixes.

- Introduce a `rules_java_builtin` repo in WORKSPACE prefix to avoid conflict with user defined rules_java.
    - `@bazel_tools//tools/jdk/*.bzl` loads from `rules_java_builtin` through repo-mappings.
    - `@local_jdk` was overridden in `jdk.WORKSPACE` to add repo_mapping for `rules_java`.
    - `jdk.WORKSPACE` explicitly loads from `rules_java_builtin` for JDK definitions and java toolchain definitions.
- Allow using `__SKIP_WORKSPACE_PREFIX__` and `__SKIP_WORKSPACE_SUFFIX__` in WORKSPACE comment.
- Fixed many tests by adjusting the WORKSPACE file content.
- Re-export more symbols from `@bazel_tools` to be backward-compatible.

Fixes https://github.com/bazelbuild/bazel/issues/18551

Related:
- https://github.com/bazelbuild/bazel/discussions/18373
- https://github.com/bazelbuild/rules_java/pull/110
- https://github.com/bazelbuild/bazel/pull/18423

Closes #18558.

PiperOrigin-RevId: 538483417
Change-Id: I5223eec2c4b10131fc8c5b342237385ff2f56413
diff --git a/src/BUILD b/src/BUILD
index fd99902..3ac43fc 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -564,36 +564,28 @@
         "@bazel_skylib//:WORKSPACE",
         "@com_google_protobuf//:WORKSPACE",
         "@remote_coverage_tools//:WORKSPACE",
-        "@remote_java_tools_darwin_arm64_for_testing//:WORKSPACE",
-        "@remote_java_tools_darwin_x86_64_for_testing//:WORKSPACE",
-        "@remote_java_tools_for_testing//:WORKSPACE",
-        "@remote_java_tools_linux_for_testing//:WORKSPACE",
-        "@remote_java_tools_test//:WORKSPACE",
-        "@remote_java_tools_test_darwin_arm64//:WORKSPACE",
-        "@remote_java_tools_test_darwin_x86_64//:WORKSPACE",
-        "@remote_java_tools_test_linux//:WORKSPACE",
-        "@remote_java_tools_test_windows//:WORKSPACE",
-        "@remote_java_tools_windows_for_testing//:WORKSPACE",
-        "@remotejdk11_linux_aarch64_for_testing//:WORKSPACE",
-        "@remotejdk11_linux_for_testing//:WORKSPACE",
-        "@remotejdk11_linux_ppc64le_for_testing//:WORKSPACE",
-        "@remotejdk11_linux_s390x_for_testing//:WORKSPACE",
-        "@remotejdk11_macos_aarch64_for_testing//:WORKSPACE",
-        "@remotejdk11_macos_for_testing//:WORKSPACE",
-        "@remotejdk11_win_arm64_for_testing//:WORKSPACE",
-        "@remotejdk11_win_for_testing//:WORKSPACE",
+        "@remote_java_tools//:GenClass",
+        "@remote_java_tools_darwin_arm64//:java_tools/src/tools/singlejar/singlejar_local",
+        "@remote_java_tools_darwin_x86_64//:java_tools/src/tools/singlejar/singlejar_local",
+        "@remote_java_tools_linux//:java_tools/src/tools/singlejar/singlejar_local",
+        "@remote_java_tools_windows//:java_tools/src/tools/singlejar/singlejar_local.exe",
+        "@remotejdk11_linux//:WORKSPACE",
+        "@remotejdk11_linux_aarch64//:WORKSPACE",
+        "@remotejdk11_linux_ppc64le//:WORKSPACE",
+        "@remotejdk11_linux_s390x//:WORKSPACE",
+        "@remotejdk11_macos//:WORKSPACE",
+        "@remotejdk11_macos_aarch64//:WORKSPACE",
+        "@remotejdk11_win//:WORKSPACE",
+        "@remotejdk11_win_arm64//:WORKSPACE",
         "@rules_cc//:WORKSPACE",
         "@rules_java//:WORKSPACE",
+        "@rules_java_builtin_for_testing//:WORKSPACE",
         "@rules_pkg//:WORKSPACE",
         "@rules_proto//:WORKSPACE",
         "@rules_python//:WORKSPACE",
         "@rules_testing//:WORKSPACE.bazel",
     ] + [
-        "@openjdk%s_%s_archive//:WORKSPACE" % (version, os)
-        for version in ("17", "20")
-        for os in ("darwin", "darwin_aarch64", "linux", "windows") + (("linux_s390x", "windows_arm64") if version != "20" else ())
-    ] + [
-        "@remotejdk%s_%s_for_testing//:WORKSPACE" % (version, os)
+        "@remotejdk%s_%s//:WORKSPACE" % (version, os)
         for version in ("17", "20")
         for os in ("macos", "macos_aarch64", "linux", "win") + (("linux_s390x", "win_arm64") if version != "20" else ())
     ],