AU: DBus support.

A few changes to support dbus in the Update Engine daemon:

- SConstruct: build marshaller for the dbus signal.

- Update Attempter: respond to dbus calls and broadcast status on dbus
  signal.

- Update Engine Client: flag to listen for status updates.

- Also, cleanup outdated code in Omaha Response Handler.

BUG=None
TEST=attached unittests/on device tests

Review URL: http://codereview.chromium.org/2037002
diff --git a/download_action.h b/download_action.h
index 0f375fa..e1e8aeb 100644
--- a/download_action.h
+++ b/download_action.h
@@ -33,6 +33,15 @@
 
 namespace chromeos_update_engine {
 
+class DownloadActionDelegate {
+ public:
+  // Called before any bytes are received and periodically after
+  // bytes are received.
+  // bytes_received is the number of bytes downloaded thus far.
+  // total is the number of bytes expected.
+  virtual void BytesReceived(uint64_t bytes_received, uint64_t total) = 0;
+};
+
 class DownloadAction;
 class NoneType;
 
@@ -66,11 +75,15 @@
   static std::string StaticType() { return "DownloadAction"; }
   std::string Type() const { return StaticType(); }
 
-  // Delegate methods (see http_fetcher.h)
+  // HttpFetcherDelegate methods (see http_fetcher.h)
   virtual void ReceivedBytes(HttpFetcher *fetcher,
                              const char* bytes, int length);
   virtual void TransferComplete(HttpFetcher *fetcher, bool successful);
 
+  void set_delegate(DownloadActionDelegate* delegate) {
+    delegate_ = delegate;
+  }
+
  private:
   // The InstallPlan passed in
   InstallPlan install_plan_;
@@ -93,6 +106,11 @@
 
   // Used to find the hash of the bytes downloaded
   OmahaHashCalculator omaha_hash_calculator_;
+  
+  // For reporting status to outsiders
+  DownloadActionDelegate* delegate_;
+  uint64_t bytes_received_;
+  
   DISALLOW_COPY_AND_ASSIGN(DownloadAction);
 };