Android: Implement the binder service.

This patch introduces the service delegate interface for non-Brillo
targets, which is the class in charge of implementing the API exposed
by the service. The binder service for non-Brillo targets is now
completed using this interface.

The other side of this interface will be implemented in a follow up CL,
while this CL includes only the interface and its usage.

To accomodate non-Brillo targets, the generic ServiceObserverInterface
is extended with the PayloadApplicationComplete message, which will be
implemented for all targets in the future.

Bug: 25631949
TEST=`mmma system/update_engine` on aosp_arm-eng and edison-eng

Change-Id: I9fa8e9565ae92515e81e07d2cef562fc4e11a7ba
diff --git a/weave_service.h b/weave_service.h
index b1068e7..5a3aff3 100644
--- a/weave_service.h
+++ b/weave_service.h
@@ -42,6 +42,7 @@
                         const std::string& new_version,
                         int64_t new_size) override;
   void SendChannelChangeUpdate(const std::string& tracking_channel) override;
+  void SendPayloadApplicationComplete(ErrorCode error_code) override {}
 
  private:
   // Force a weave update.