Refactor BinderUpdateEngineAndroidService.

Factor out common code.
Test: update_engine_unittests

Change-Id: I476e6f1cbe44e55a1a5b02b1ab136380c5ab2ae6
diff --git a/binder_service_android.cc b/binder_service_android.cc
index 88bc1f2..9d040d6 100644
--- a/binder_service_android.cc
+++ b/binder_service_android.cc
@@ -34,6 +34,16 @@
   return Status::fromServiceSpecificError(
       1, android::String8{error->GetMessage().c_str()});
 }
+
+vector<string> ToVecString(const vector<android::String16>& inp) {
+  vector<string> out;
+  out.reserve(inp.size());
+  for (const auto& e : inp) {
+    out.emplace_back(android::String8{e}.string());
+  }
+  return out;
+}
+
 }  // namespace
 
 namespace chromeos_update_engine {
@@ -99,11 +109,7 @@
     int64_t payload_size,
     const vector<android::String16>& header_kv_pairs) {
   const string payload_url{android::String8{url}.string()};
-  vector<string> str_headers;
-  str_headers.reserve(header_kv_pairs.size());
-  for (const auto& header : header_kv_pairs) {
-    str_headers.emplace_back(android::String8{header}.string());
-  }
+  vector<string> str_headers = ToVecString(header_kv_pairs);
 
   brillo::ErrorPtr error;
   if (!service_delegate_->ApplyPayload(
@@ -118,11 +124,7 @@
     int64_t payload_offset,
     int64_t payload_size,
     const vector<android::String16>& header_kv_pairs) {
-  vector<string> str_headers;
-  str_headers.reserve(header_kv_pairs.size());
-  for (const auto& header : header_kv_pairs) {
-    str_headers.emplace_back(android::String8{header}.string());
-  }
+  vector<string> str_headers = ToVecString(header_kv_pairs);
 
   brillo::ErrorPtr error;
   if (!service_delegate_->ApplyPayload(