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/ipconfig.h b/ipconfig.h
index e86ea57..b459565 100644
--- a/ipconfig.h
+++ b/ipconfig.h
@@ -8,7 +8,7 @@
 #include <string>
 #include <vector>
 
-#include <base/callback_old.h>
+#include <base/callback.h>
 #include <base/logging.h>
 #include <base/memory/ref_counted.h>
 #include <base/memory/scoped_ptr.h>
@@ -73,7 +73,7 @@
   // configurations. The callback's second argument is set to false if IP
   // configuration failed.
   void RegisterUpdateCallback(
-      Callback2<const IPConfigRefPtr&, bool>::Type *callback);
+      const base::Callback<void(const IPConfigRefPtr&, bool)> &callback);
 
   void set_properties(const Properties &props) { properties_ = props; }
   const Properties &properties() const { return properties_; }
@@ -125,7 +125,7 @@
   const uint serial_;
   scoped_ptr<IPConfigAdaptorInterface> adaptor_;
   Properties properties_;
-  scoped_ptr<Callback2<const IPConfigRefPtr&, bool>::Type> update_callback_;
+  base::Callback<void(const IPConfigRefPtr&, bool)> update_callback_;
 
   void Init();