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/cellular.cc b/cellular.cc
index 349e4c6..b524e2e 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -11,6 +11,7 @@
 #include <utility>
 #include <vector>
 
+#include <base/bind.h>
 #include <base/logging.h>
 #include <base/stringprintf.h>
 #include <chromeos/dbus/service_constants.h>
@@ -33,6 +34,7 @@
 #include "shill/rtnl_handler.h"
 #include "shill/technology.h"
 
+using base::Bind;
 using std::map;
 using std::string;
 using std::vector;
@@ -102,8 +104,7 @@
       modem_state_(kModemStateUnknown),
       dbus_owner_(owner),
       dbus_path_(path),
-      provider_db_(provider_db),
-      task_factory_(this) {
+      provider_db_(provider_db) {
   PropertyStore *store = this->mutable_store();
   store->RegisterConstString(flimflam::kDBusConnectionProperty, &dbus_owner_);
   store->RegisterConstString(flimflam::kDBusObjectProperty, &dbus_path_);
@@ -231,9 +232,7 @@
 }
 
 void Cellular::HandleNewRegistrationState() {
-  dispatcher()->PostTask(
-      task_factory_.NewRunnableMethod(
-          &Cellular::HandleNewRegistrationStateTask));
+  dispatcher()->PostTask(Bind(&Cellular::HandleNewRegistrationStateTask, this));
 }
 
 void Cellular::HandleNewRegistrationStateTask() {