libchromeos: Replace char with std::string in string_utils API

std::string version of functions is enough to cover char use cases.
C library was replaced with STL in Split and SplitAtFirst implementations.
Added support of splitting by empty string. Uses but reasonable implementation
is simple.

BUG=none
TEST=unittests

Change-Id: I0778722d31a7b06eea2227b4d94991ab194195cb
Reviewed-on: https://chromium-review.googlesource.com/258640
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/commands/prop_constraints.cc b/buffet/commands/prop_constraints.cc
index 641d0f6..ff01e05 100644
--- a/buffet/commands/prop_constraints.cc
+++ b/buffet/commands/prop_constraints.cc
@@ -37,12 +37,11 @@
 bool Constraint::ReportErrorNotOneOf(chromeos::ErrorPtr* error,
                                      const std::string& val,
                                      const std::vector<std::string>& values) {
-  chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain,
-                               errors::commands::kOutOfRange,
-                               "Value %s is invalid. Expected one of [%s]",
-                               val.c_str(),
-                               chromeos::string_utils::Join(',',
-                                                            values).c_str());
+  chromeos::Error::AddToPrintf(
+      error, FROM_HERE, errors::commands::kDomain,
+      errors::commands::kOutOfRange,
+      "Value %s is invalid. Expected one of [%s]", val.c_str(),
+      chromeos::string_utils::Join(",", values).c_str());
   return false;
 }