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/dhcp_provider.cc b/dhcp_provider.cc
index 7197fdb..dce358f 100644
--- a/dhcp_provider.cc
+++ b/dhcp_provider.cc
@@ -15,8 +15,9 @@
 
 namespace shill {
 
-static base::LazyInstance<DHCPProvider> g_dhcp_provider(
-    base::LINKER_INITIALIZED);
+// TODO(ers): not using LAZY_INSTANCE_INITIALIZER
+// because of http://crbug.com/114828
+static base::LazyInstance<DHCPProvider> g_dhcp_provider = {0, {{0}} };
 
 DHCPProvider::DHCPProvider()
     : proxy_factory_(ProxyFactory::GetInstance()),