update_engine: added CanRollback dbus method

Added a method to the update engine to check if a rollback
partition is available and can be booted from.
update_engine_client is also updated to call the function
when --can_rollback paramater is specified

BUG=chromium:343301
TEST=Ran "update_engine_client --can_rollback" and unit tests

Change-Id: If3fcb29a0067069a22812f60e9b67c6fdbbd18bd
Reviewed-on: https://chromium-review.googlesource.com/187157
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/dbus_service.cc b/dbus_service.cc
index f75823c..5562f4e 100644
--- a/dbus_service.cc
+++ b/dbus_service.cc
@@ -192,6 +192,16 @@
   return TRUE;
 }
 
+gboolean update_engine_service_can_rollback(UpdateEngineService* self,
+                                            gboolean* out_can_rollback,
+                                            GError **error)
+{
+  LOG(INFO) << "Checking for a rollback partition.";
+  *out_can_rollback = self->system_state_->update_attempter()->CanRollback();
+  return TRUE;
+}
+
+
 gboolean update_engine_service_reset_status(UpdateEngineService* self,
                                             GError **error) {
   if (!self->system_state_->update_attempter()->ResetStatus()) {