ResetStatus if update_engine boot in different slot but same build

Old behavior:
    When update_engine starts up after device take OTA and reboot, if
    device booted into a different build(check build fingerprint),
    ResetStatus().

When we apply a self-ota, device will boot into the same build, so
ResetStatus() is never called. If we apply the same OTA at this point,
this OTA will be treated as a "resume", and will fail to install because
we never call libsnapshot's API to allocate snapshot for new update.

Changed to ResetStatus() if boot slot changed, or build fingerprint
changed.

Bug: 185019674
Test: apply self-full OTA, reboot, repeat 2 times.
Change-Id: Idcc29dc1c02f3b9b2c84ed1978abedb651a3875a
diff --git a/common/constants.h b/common/constants.h
index 64447ce..68f720d 100644
--- a/common/constants.h
+++ b/common/constants.h
@@ -76,6 +76,7 @@
 extern const char kPrefsLastFp[];
 extern const char kPrefsPostInstallSucceeded[];
 extern const char kPrefsPreviousVersion[];
+extern const char kPrefsPreviousSlot[];
 extern const char kPrefsResumedUpdateFailures[];
 extern const char kPrefsRollbackHappened[];
 extern const char kPrefsRollbackVersion[];