versioner: assorted fixes.

Zero initialize the contents of ArchMap, keep track of the symbol name
in Declaration, remove unnecessary copies in loops.

Change-Id: I47b07755846f252b83ffc4c89547a34b2f7ab868
diff --git a/tools/versioner/src/DeclarationDatabase.cpp b/tools/versioner/src/DeclarationDatabase.cpp
index 85ad9ba..8e8d84f 100644
--- a/tools/versioner/src/DeclarationDatabase.cpp
+++ b/tools/versioner/src/DeclarationDatabase.cpp
@@ -196,6 +196,7 @@
     auto declaration_it = symbol_it->second.declarations.find(location);
     if (declaration_it == symbol_it->second.declarations.end()) {
       Declaration declaration;
+      declaration.name = declaration_name;
       declaration.location = location;
       declaration.is_extern = is_extern;
       declaration.is_definition = is_definition;
@@ -335,7 +336,7 @@
     ss << to_string(decl_av.global_availability) << ", ";
   }
 
-  for (auto it : decl_av.arch_availability) {
+  for (const auto& it : decl_av.arch_availability) {
     if (!it.second.empty()) {
       ss << to_string(it.first) << ": " << to_string(it.second) << ", ";
     }