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/aidl.cpp b/aidl.cpp
index 464cd52..c586883 100644
--- a/aidl.cpp
+++ b/aidl.cpp
@@ -608,7 +608,7 @@
 
   // TODO(wiley) b/23600457 generate a dependency file if requested with -b
 
-  return (cpp::GenerateCpp(options, *types, *interface)) ? 0 : 1;
+  return (cpp::GenerateCpp(options, *types, *interface, io_delegate)) ? 0 : 1;
 }
 
 int compile_aidl_to_java(const JavaOptions& options,