shill: ExternalTask: use ProcessManager to manage processes

This removes glib dependency for spawning/monitoring processes
for external tasks.

This is a part of series CLs that convert shill over to MessageLoopForIO
and chromeos dbus.

BUG=chromium:516841
TEST=unittests

Change-Id: I6cec2326671bf0da09cd8ec7731b5c510cbed0ed
Reviewed-on: https://chromium-review.googlesource.com/292982
Commit-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
diff --git a/rpc_task.cc b/rpc_task.cc
index 6fd0b34..1846584 100644
--- a/rpc_task.cc
+++ b/rpc_task.cc
@@ -39,12 +39,11 @@
   delegate_->Notify(reason, dict);
 }
 
-vector<string> RPCTask::GetEnvironment() const {
-  return vector<string>{
-    string(kRPCTaskServiceVariable) + "=" +
-        adaptor_->GetRpcConnectionIdentifier(),
-    string(kRPCTaskPathVariable) + "=" +
-        adaptor_->GetRpcIdentifier()};
+map<string, string> RPCTask::GetEnvironment() const {
+  map<string, string> env;
+  env.emplace(kRPCTaskServiceVariable, adaptor_->GetRpcConnectionIdentifier());
+  env.emplace(kRPCTaskPathVariable, adaptor_->GetRpcIdentifier());
+  return env;
 }
 
 // TODO(quiche): remove after moving OpenVPNDriver over to ExternalTask.