Move JoinString to the base namespace.

Change "Separator" from string to StringPIece (most are constants). Remove char versions for symmetry with SplitString.

Update callers who pass empty separators to use a base::StringPiece()

Change chromecast/base/metrics/cast_metrics_helper.cc to not use JoinString at all and just append to the output (code is simpler and faster).

[email protected] for chromeos

Committed: https://crrev.com/0eabfa001ba06d3c66992b95b69a988ef0633992
Cr-Commit-Position: refs/heads/master@{#338762}

patch from issue 1223153003 at patchset 160001 (http://crrev.com/1223153003#ps160001)

BUG=

Review URL: https://codereview.chromium.org/1230243005

Cr-Commit-Position: refs/heads/master@{#338819}
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc
index 0a4c7fa..3378d72d 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -1806,8 +1806,9 @@
   EXPECT_TRUE(installed_) << "Nothing was installed.";
   EXPECT_FALSE(was_update_) << path.value();
   ASSERT_EQ(1u, loaded_.size()) << "Nothing was loaded.";
-  EXPECT_EQ(0u, errors.size()) << "There were errors: "
-                               << JoinString(errors, ',');
+  EXPECT_EQ(0u, errors.size())
+      << "There were errors: "
+      << base::JoinString(errors, base::ASCIIToUTF16(","));
   EXPECT_TRUE(service()->GetExtensionById(loaded_[0]->id(), false))
       << path.value();