deploy: Generate Javadocs for jazzer-junit

Javadoc fails on neverlinked libraries. Since these libraries are
extremely small, it's not a problem to add them to the runtime
classpath.

Also reduces visibility of some classes that should not appear in the
Javadocs.
diff --git a/deploy/BUILD.bazel b/deploy/BUILD.bazel
index 6814ea7..3992fc8 100644
--- a/deploy/BUILD.bazel
+++ b/deploy/BUILD.bazel
@@ -16,8 +16,16 @@
     name = "junit",
     maven_coordinates = JAZZER_JUNIT_COORDINATES,
     pom_template = "jazzer-junit.pom",
+    # Do not generate an implicit javadocs target - the current target is based on the shaded deploy
+    # JAR including all dependencies, which breaks javadoc.
+    tags = ["no-javadocs"],
     visibility = ["//visibility:public"],
     runtime_deps = [
         "//driver/src/main/java/com/code_intelligence/jazzer/junit",
     ] + JAZZER_JUNIT_MAVEN_DEPS,
 )
+
+alias(
+    name = "junit-javadocs",
+    actual = "//driver/src/main/java/com/code_intelligence/jazzer/junit:junit-docs",
+)
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel b/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel
index 5b631d5..d870499 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel
+++ b/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel
@@ -15,6 +15,5 @@
 java_library(
     name = "constants",
     srcs = [":constants_java"],
-    neverlink = True,
     visibility = ["//visibility:public"],
 )
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel b/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel
index 3f824b1..006e040 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel
+++ b/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel
@@ -1,10 +1,25 @@
 load("@com_github_johnynek_bazel_jar_jar//:jar_jar.bzl", "jar_jar")
 load("@fmeum_rules_jni//jni:defs.bzl", "java_jni_library")
+load("@rules_jvm_external//:defs.bzl", "javadoc")
 load("//bazel:compat.bzl", "SKIP_ON_WINDOWS")
 load("//bazel:jar.bzl", "strip_jar")
 load("//:maven.bzl", "JAZZER_JUNIT_MAVEN_DEPS")
 load("//sanitizers:sanitizers.bzl", "SANITIZER_CLASSES")
 
+javadoc(
+    name = "junit-docs",
+    visibility = ["//deploy:__pkg__"],
+    deps = [
+        ":agent_configurator",
+        ":fuzz_test",
+        ":jazzer_test_engine",
+        ":utils",
+        "//agent/src/main/java/com/code_intelligence/jazzer/api",
+    ],
+)
+
+jar_jar(
+    name = "junit_shaded",
 # The Jazzer JUnit integration without its dependencies declared in the pom.xml.
 jar_jar(
     name = "junit",
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java
index 150c0c9..1d05cde 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java
+++ b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java
@@ -39,7 +39,7 @@
 import org.junit.platform.engine.TestExecutionResult;
 import org.junit.platform.engine.reporting.ReportEntry;
 
-public class JazzerFuzzTestExecutor {
+class JazzerFuzzTestExecutor {
   private static final AtomicBoolean hasExecutedOnce = new AtomicBoolean();
 
   private final ExecutionRequest request;
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java
index 5f3141e..8cbd8f0 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java
+++ b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java
@@ -39,7 +39,7 @@
 import org.junit.platform.engine.support.descriptor.EngineDescriptor;
 
 public class JazzerTestEngine implements TestEngine {
-  public static class JazzerSetupError extends Error {
+  static class JazzerSetupError extends Error {
     public JazzerSetupError(Throwable e) {
       super("Jazzer fuzz test failed to execute", e);
     }
@@ -48,7 +48,7 @@
     }
   }
 
-  public static class JazzerFuzzTestDescriptor extends AbstractTestDescriptor {
+  static class JazzerFuzzTestDescriptor extends AbstractTestDescriptor {
     private final Method method;
 
     public JazzerFuzzTestDescriptor(UniqueId uniqueId, Method method) {