update_engine: Replace googe::protobuf::Closure with base::Closure

In order to clean up libchromeos, remove chromeos/callback.h and
switch update_engine from using
googe::protobuf::Closure/NewPermanentCallback to base::Closure/Bind

BUG=chromium:406060
TEST=FEATURES=test emerge-link update_engine

Change-Id: I02d222c3f6c9a5bf5177d58e3a25a596348619bf
Reviewed-on: https://chromium-review.googlesource.com/213675
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/utils.cc b/utils.cc
index 37d1c9a..2dcc8ca 100644
--- a/utils.cc
+++ b/utils.cc
@@ -25,6 +25,7 @@
 #include <utility>
 #include <vector>
 
+#include <base/callback.h>
 #include <base/file_util.h>
 #include <base/files/file_path.h>
 #include <base/files/scoped_file.h>
@@ -36,7 +37,6 @@
 #include <base/strings/string_util.h>
 #include <base/strings/stringprintf.h>
 #include <glib.h>
-#include <google/protobuf/stubs/common.h>
 
 #include "update_engine/clock_interface.h"
 #include "update_engine/constants.h"
@@ -828,14 +828,13 @@
 }
 
 gboolean GlibRunClosure(gpointer data) {
-  google::protobuf::Closure* callback =
-      reinterpret_cast<google::protobuf::Closure*>(data);
+  base::Closure* callback = reinterpret_cast<base::Closure*>(data);
   callback->Run();
   return FALSE;
 }
 
 void GlibDestroyClosure(gpointer data) {
-  delete reinterpret_cast<google::protobuf::Closure*>(data);
+  delete reinterpret_cast<base::Closure*>(data);
 }
 
 string FormatSecs(unsigned secs) {