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/hardware.h b/hardware.h
index 8168d9c..cd7c8d5 100644
--- a/hardware.h
+++ b/hardware.h
@@ -20,6 +20,7 @@
   // HardwareInterface methods.
   virtual const std::string BootKernelDevice();
   virtual const std::string BootDevice();
+  virtual std::vector<std::string> GetKernelDevices() override;
   virtual bool IsKernelBootable(const std::string& kernel_device,
                                 bool* bootable);
   virtual bool MarkKernelUnbootable(const std::string& kernel_device);