shill: Convert code to use the newest version of libchrome.

The biggest change is a switch from using the deprecated
Task and CallbackN mechanisms to using the new Callback
mechanism.

Note: Original CL was https://gerrit.chromium.org/gerrit/16156.
This is logically another patch to that CL, but since the
latter was already merged, and is considered closed by
Gerrit, it's necessary to create a new CL.

BUG=chromium-os:15330
TEST=Build shill and run it on a zgb with a modem. Build and
run unit tests.
CQ-DEPEND=I37628863370323d30cac493764ea28f8ffd42637

Change-Id: I3ae78a3aa44ec167b79f2170d07650ece888254f
Reviewed-on: https://gerrit.chromium.org/gerrit/18030
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Eric Shienbrood <ers@chromium.org>
diff --git a/glib_io_ready_handler.cc b/glib_io_ready_handler.cc
index b72ca0e..7d58ebb 100644
--- a/glib_io_ready_handler.cc
+++ b/glib_io_ready_handler.cc
@@ -9,15 +9,16 @@
 #include <stdio.h>
 #include <sys/socket.h>
 
+using base::Callback;
+
 namespace shill {
 
 static gboolean DispatchIOHandler(GIOChannel *chan,
                                   GIOCondition cond,
                                   gpointer data) {
-  Callback1<int>::Type *callback =
-    reinterpret_cast<Callback1<int>::Type *>(data);
+  GlibIOReadyHandler *handler = reinterpret_cast<GlibIOReadyHandler *>(data);
 
-  callback->Run(g_io_channel_unix_get_fd(chan));
+  handler->callback().Run(g_io_channel_unix_get_fd(chan));
 
   if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR))
     return FALSE;
@@ -27,7 +28,7 @@
 
 GlibIOReadyHandler::GlibIOReadyHandler(int fd,
                                        IOHandler::ReadyMode mode,
-                                       Callback1<int>::Type *callback)
+                                       const Callback<void(int)> &callback)
     : channel_(NULL),
       callback_(callback),
       source_id_(G_MAXUINT) {
@@ -53,8 +54,7 @@
 
 void GlibIOReadyHandler::Start() {
   if (source_id_ == G_MAXUINT) {
-    source_id_ = g_io_add_watch(channel_, condition_, DispatchIOHandler,
-                                callback_);
+    source_id_ = g_io_add_watch(channel_, condition_, DispatchIOHandler, this);
   }
 }