binarystore: Convert to nanopb

This converts the on BMC code to use nanopb, while keeping the test code
using the standard protobuf impl. This is an effort to reduce code size
for some of our legacy BMCs which requires us to get rid of the standard
protobuf implementation where possible.

Change-Id: I522087820ae437a595c24aebc2086bea8908cfcc
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/include/binarystore.hpp b/include/binarystore.hpp
index 3b5e1a8..b7650f0 100644
--- a/include/binarystore.hpp
+++ b/include/binarystore.hpp
@@ -7,13 +7,12 @@
 
 #include <blobs-ipmid/blobs.hpp>
 #include <cstdint>
+#include <map>
 #include <memory>
 #include <optional>
 #include <string>
 #include <vector>
 
-#include "binaryblob.pb.h"
-
 using std::size_t;
 using std::uint16_t;
 using std::uint32_t;
@@ -48,7 +47,6 @@
         baseBlobId_(baseBlobId),
         file_(std::move(file)), maxSize(maxSize)
     {
-        blob_.set_blob_base_id(baseBlobId_);
     }
 
     BinaryStore(std::unique_ptr<SysFile> file, bool readOnly = false,
@@ -107,9 +105,8 @@
     bool loadSerializedData(
         std::optional<std::string> aliasBlobBaseId = std::nullopt);
 
-    std::string baseBlobId_;
-    binaryblobproto::BinaryBlobBase blob_;
-    binaryblobproto::BinaryBlob* currentBlob_ = nullptr;
+    std::map<std::string, std::vector<std::uint8_t>> blobs_;
+    std::string baseBlobId_, currentBlob_;
     /* True if current blob is writable */
     bool writable_ = false;
     /* True if the entire store (not just individual blobs) is read only */