Add @JavaPassthrough annotation

The AIDL annotation is used to pass Java annotation to the generated
java code. It is ignored in other backends like C++ and NDK.
Specifically, an AIDL method

@JavaPassthrough(annotation="@com.android.MyAnnotation")
void foo();

becomes a Java method

@com.android.MyAnnotation
void foo() extends RemoteException;

Note that the Java annotation syntax inside the "annotation" parameter
is not parsed. It's left to the Java compiler which will compile the
generated code.

Bug: 135686385
Test: run aidl_unittests
Change-Id: I3dbdb455f1e2ac62b327101e86a8984722c0cbb7
diff --git a/aidl_language.h b/aidl_language.h
index d63c9e0..4ed36fb 100644
--- a/aidl_language.h
+++ b/aidl_language.h
@@ -218,6 +218,7 @@
     VINTF_STABILITY,
     NULLABLE,
     UTF8_IN_CPP,
+    JAVA_PASSTHROUGH,
   };
   static std::string TypeToString(Type type);
 
@@ -287,6 +288,7 @@
   void DumpAnnotations(CodeWriter* writer) const;
 
   const AidlAnnotation* UnsupportedAppUsage() const;
+  const AidlAnnotation* JavaPassthrough() const;
   const AidlTypeSpecifier* BackingType(const AidlTypenames& typenames) const;
   std::string ToString() const;