shill: Implement a basic DiagnosticsReporter.

Currently the reporter is disabled. When enabled, it will trigger a
crash to upload diagnostics when its Report method is invoked. The
upload mimics the update_engine implementation.

BUG=chromium-os:35948
TEST=unit tests, gmerged shill, ensured connectivity

Change-Id: I0353e7d694dc3bc1b5b24d27856c3b9aeda43232
Reviewed-on: https://gerrit.chromium.org/gerrit/37525
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/shill_daemon.cc b/shill_daemon.cc
index be82903..b8a09ae 100644
--- a/shill_daemon.cc
+++ b/shill_daemon.cc
@@ -15,6 +15,7 @@
 #include "shill/callback80211_metrics.h"
 #include "shill/config80211.h"
 #include "shill/dhcp_provider.h"
+#include "shill/diagnostics_reporter.h"
 #include "shill/error.h"
 #include "shill/logging.h"
 #include "shill/nss.h"
@@ -99,6 +100,7 @@
   rtnl_handler_->Start(&dispatcher_, &sockets_);
   routing_table_->Start();
   dhcp_provider_->Init(control_, &dispatcher_, &glib_);
+  DiagnosticsReporter::GetInstance()->Init(&dispatcher_);
 
   if (config80211_) {
     config80211_->Init(&dispatcher_);