Cache OTA manifest in update_engine

When resuming download of an OTA package, update_engine needs to
redownload the manifest of OTA package, located at beginning of file.
However, the manifest blob can be as large as ~150K for some updates.
This CL caches manifest on disk, so that update engine no longer has to
redownload the manifest for every resume.

Test: Perform OTA, pause and resume, verify that update succeeds
Bug: 70736331
Change-Id: Iaf157ef57e68e4842d5867dea5467a3ab34f8286
diff --git a/common/constants.h b/common/constants.h
index eb489fc..7170201 100644
--- a/common/constants.h
+++ b/common/constants.h
@@ -104,6 +104,7 @@
 extern const char kPrefsVerityWritten[];
 extern const char kPrefsWallClockScatteringWaitPeriod[];
 extern const char kPrefsWallClockStagingWaitPeriod[];
+extern const char kPrefsManifestBytes[];
 
 // Keys used when storing and loading payload properties.
 extern const char kPayloadPropertyFileSize[];