Clean up interfaceChain's implementation.

Use the initialize list constructor. Output looks like this:

_hidl_cb({
    IFoo::descriptor,
    ::android::hidl::base::V1_0::IBase::descriptor,
});

Test: hidl_test
Change-Id: I31df5eb61721ac7b02df958e49ca9837c17c869b
diff --git a/Interface.cpp b/Interface.cpp
index 9276839..602b221 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -92,14 +92,13 @@
         HIDL_DESCRIPTOR_CHAIN_TRANSACTION,
         [this](auto &out) { /* cppImpl */
             std::vector<const Interface *> chain = typeChain();
-            out << "::android::hardware::hidl_vec<::android::hardware::hidl_string> _hidl_return;\n";
-            out << "_hidl_return.resize(" << chain.size() << ");\n";
-            for (size_t i = 0; i < chain.size(); ++i) {
-                out << "_hidl_return[" << i << "] = "
-                    << chain[i]->fullName()
-                    << "::descriptor;\n";
-            }
-            out << "_hidl_cb(_hidl_return);\n";
+            out << "_hidl_cb(";
+            out.block([&] {
+                for (const Interface *iface : chain) {
+                    out << iface->fullName() << "::descriptor,\n";
+                }
+            });
+            out << ");\n";
             out << "return ::android::hardware::Void();";
         },
         [this](auto &out) { /* javaImpl */