binarystore: Add ReadOnly Mode

Add Read Only mode to the binary store. In this mode,
all blobs are not writable, no new blobs can be created and
the storage protobuf can't be modified in any way.

Also added simple API for reading/examining blob store
without modifying it.

Signed-off-by: Maksym Sloyko <maxims@google.com>
Change-Id: I12e3473351be98820d8e5df1b71a6d43699aa671
diff --git a/binarystore_interface.hpp b/binarystore_interface.hpp
index 73ce17e..ba6dca3 100644
--- a/binarystore_interface.hpp
+++ b/binarystore_interface.hpp
@@ -61,6 +61,14 @@
                                       uint32_t requestedSize) = 0;
 
     /**
+     * Reads all data from the blob
+     * @param blobId: The blob id to operate on.
+     * @returns Bytes able to read. Returns empty if nothing can be read or
+     *          if there is no such blob.
+     */
+    virtual std::vector<uint8_t> readBlob(const std::string& blobId) const = 0;
+
+    /**
      * Writes data to the currently openend blob.
      * @param offset: offset into the blob to write
      * @param data: bytes to write