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/states/state_manager.cc b/buffet/states/state_manager.cc
index d98015d..827cd7f 100644
--- a/buffet/states/state_manager.cc
+++ b/buffet/states/state_manager.cc
@@ -111,7 +111,7 @@
   std::string package_name;
   std::string property_name;
   bool split = chromeos::string_utils::SplitAtFirst(
-      full_property_name, '.', &package_name, &property_name);
+      full_property_name, ".", &package_name, &property_name);
   if (full_property_name.empty() || (split && property_name.empty())) {
     chromeos::Error::AddTo(error, FROM_HERE, errors::state::kDomain,
                            errors::state::kPropertyNameMissing,