Fix rollback crash while previous rollback is in progress.

The CHECK in Rollback is wrong. We should not be crashing the update_engine
just because we have a previous rollback in progress. This CL changes the
CHECK to a if/else and cleans up the Rollback() logic to be easier to follow
and removes a redundant check for partitions (since CanRollback already
covers this problem).

This CL also cleans up a couple rollback-related unittests.

BUG=chromium:356975
TEST=unittests + on device

Change-Id: Iee8de65eabcddd1dbe6c6413e33a15bf75302260
Reviewed-on: https://chromium-review.googlesource.com/192909
Tested-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
diff --git a/update_attempter.h b/update_attempter.h
index d64771b..dfde4ff 100644
--- a/update_attempter.h
+++ b/update_attempter.h
@@ -145,12 +145,10 @@
   // This is the internal entry point for going through a rollback. This will
   // attempt to run the postinstall on the non-active partition and set it as
   // the partition to boot from. If |powerwash| is True, perform a powerwash
-  // as part of rollback. If |install_path| is set, use this value to determine
-  // the partitions to roll back to (used in testing). Returns True on success.
-  bool Rollback(bool powerwash, std::string* install_path);
+  // as part of rollback. Returns True on success.
+  bool Rollback(bool powerwash);
 
-  // This is the internal entry point for checking if a valid rollback
-  // partition exists.
+  // This is the internal entry point for checking if we can rollback.
   bool CanRollback() const;
 
   // This is the internal entry point for getting a rollback partition name,