Replace annotation_processors with plugins

Follow bazel's modules for annotation processors by introducing
a java_plugin module type that can contain extra metadata about
the annotation processor, the processor class and a flag to
specify if the annotation processor is compatible with the
turbine optimization.  Deprecate the annotation_processors
property, which took a list of java_library_host modules, in
favor of the plugins property, which takes a list of java_plugin
modules.  The annotation_processors property will be removed
once all uses have been replaced with plugins.

Bug: 77284273
Test: plugin_test.go
Test: m caliper
Change-Id: I37c1e80eba71ae2d6a06199fb102194a51994989
diff --git a/Android.bp b/Android.bp
index 2c400cf..03071d1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -249,6 +249,7 @@
         "java/jdeps.go",
         "java/java_resources.go",
         "java/kotlin.go",
+        "java/plugin.go",
         "java/prebuilt_apis.go",
         "java/proto.go",
         "java/sdk.go",
@@ -262,6 +263,7 @@
         "java/java_test.go",
         "java/jdeps_test.go",
         "java/kotlin_test.go",
+        "java/plugin_test.go",
         "java/sdk_test.go",
     ],
     pluginFor: ["soong_build"],