Prefer emplace back over push_back where emplace_back is more appropriate

This also helps a lot with dealing with conversions and data structure creation under the hood.
diff --git a/absl/crc/internal/crc_cord_state.cc b/absl/crc/internal/crc_cord_state.cc
index d0be0dd..28d04dc 100644
--- a/absl/crc/internal/crc_cord_state.cc
+++ b/absl/crc/internal/crc_cord_state.cc
@@ -121,7 +121,7 @@
     }
   } else {
     // Add a fake corrupt chunk.
-    rep->prefix_crc.push_back(PrefixCrc(0, crc32c_t{1}));
+    rep->prefix_crc.emplace_back(0, crc32c_t{1});
   }
 }
 
diff --git a/absl/flags/internal/usage.cc b/absl/flags/internal/usage.cc
index 5efc7b0..e948148 100644
--- a/absl/flags/internal/usage.cc
+++ b/absl/flags/internal/usage.cc
@@ -130,7 +130,7 @@
       for (auto line : absl::StrSplit(str, absl::ByAnyChar("\n\r"))) {
         if (!tokens.empty()) {
           // Keep line separators in the input string.
-          tokens.push_back("\n");
+          tokens.emplace_back("\n");
         }
         for (auto token :
              absl::StrSplit(line, absl::ByAnyChar(" \t"), absl::SkipEmpty())) {
diff --git a/absl/flags/parse.cc b/absl/flags/parse.cc
index fa953f5..368248e 100644
--- a/absl/flags/parse.cc
+++ b/absl/flags/parse.cc
@@ -190,7 +190,7 @@
 
   // This argument represents fake argv[0], which should be present in all arg
   // lists.
-  args_.push_back("");
+  args_.emplace_back("");
 
   std::string line;
   bool success = true;
@@ -212,7 +212,7 @@
         break;
       }
 
-      args_.push_back(std::string(stripped));
+      args_.emplace_back(stripped);
       continue;
     }
 
@@ -367,7 +367,7 @@
 
   // This argument represents fake argv[0], which should be present in all arg
   // lists.
-  args.push_back("");
+  args.emplace_back("");
 
   for (const auto& flag_name : flag_names) {
     // Avoid infinite recursion.
@@ -680,7 +680,7 @@
   std::vector<std::string> flagfile_value;
 
   std::vector<ArgsList> input_args;
-  input_args.push_back(ArgsList(argc, argv));
+  input_args.emplace_back(argc, argv);
 
   std::vector<char*> output_args;
   std::vector<char*> positional_args;