Support templated structured parcelables

This adds some early support for templated structured parcelables.
This initial work is mostly intended for enforcing type safety when it
is required.
This does not allow for fields to use the template parameters.

Test: atest aidl_unittests aidl_intergration_test CtsNdkBinderTestCases
Bug: 142326204

Change-Id: Id86762060702b2c8679ef672c87ddd365044aded
diff --git a/aidl_language.h b/aidl_language.h
index 64a8a0f..7eae4c1 100644
--- a/aidl_language.h
+++ b/aidl_language.h
@@ -753,7 +753,8 @@
  public:
   AidlStructuredParcelable(const AidlLocation& location, const std::string& name,
                            const std::string& package, const std::string& comments,
-                           std::vector<std::unique_ptr<AidlVariableDeclaration>>* variables);
+                           std::vector<std::unique_ptr<AidlVariableDeclaration>>* variables,
+                           std::vector<std::string>* type_params);
   virtual ~AidlStructuredParcelable() = default;
 
   // non-copyable, non-movable