move read/writeEmbedded[References]From/ToParcel out

from hidl_string, hidl_vec, and structs.

* Add a hwtypes.h in the autogenerated files, which
  contains the read/writeEmbeddedFrom/ToParcel
  methods for structs defined in types.h.

* Fixes the hack that remove the warnings when compiling
  the generated code (useParentInEmitResolveReferencesEmbedded())
  and add one more hack (useNameInEmitReaderWriterEmbedded())

* Some clean-up on Scope.cpp (add a forEachType function)

Test: mma
Test: hidl_test

Bug: 32756130

Change-Id: Icfd116b5d92fef78d257337c3f2ef02071f7600b
diff --git a/CompoundType.h b/CompoundType.h
index baef137..df558d7 100644
--- a/CompoundType.h
+++ b/CompoundType.h
@@ -109,6 +109,7 @@
             bool isReader) const override;
 
     status_t emitTypeDeclarations(Formatter &out) const override;
+    status_t emitGlobalHwDeclarations(Formatter &out) const override;
 
     status_t emitTypeDefinitions(
             Formatter &out, const std::string prefix) const override;