Change C++ output to match make expectations

- generate a single C++ output file
- put headers into an output directory
- create the output directory structure using an IoDelegate

Bug: 23599697
Test: Unittests pass

Change-Id: I0f7b821678cd5adc00b2fdba06b52b235c724467
diff --git a/generate_cpp.h b/generate_cpp.h
index 86aea87..474bdde 100644
--- a/generate_cpp.h
+++ b/generate_cpp.h
@@ -28,7 +28,8 @@
 
 bool GenerateCpp(const CppOptions& options,
                  const cpp::TypeNamespace& types,
-                 const AidlInterface& parsed_doc);
+                 const AidlInterface& parsed_doc,
+                 const IoDelegate& io_delegate);
 
 namespace internals {
 std::unique_ptr<Document> BuildClientSource(const TypeNamespace& types,