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/manager.h b/manager.h
index b04c1b3..ac44125 100644
--- a/manager.h
+++ b/manager.h
@@ -11,6 +11,7 @@
 #include <base/file_path.h>
 #include <base/memory/ref_counted.h>
 #include <base/memory/scoped_ptr.h>
+#include <base/memory/weak_ptr.h>
 #include <chromeos/dbus/service_constants.h>
 #include <gtest/gtest_prod.h>  // for FRIEND_TEST
 
@@ -32,7 +33,7 @@
 class ManagerAdaptorInterface;
 class Metrics;
 
-class Manager {
+class Manager : public base::SupportsWeakPtr<Manager> {
  public:
   struct Properties {
    public:
@@ -207,7 +208,6 @@
   }
 
   EventDispatcher *dispatcher_;
-  ScopedRunnableMethodFactory<Manager> task_factory_;
   const FilePath run_path_;
   const FilePath storage_path_;
   const std::string user_storage_format_;