version-handler: add version-handler, blob handler

Implement version-handler: a blob handler for retrieving version
information about a blob.

Problem: ipmi-flash(firmware-handler) provides a mechanism to transfer
firmware updates, verify them and perform updates but there is no
mechanism to interrogate the firmware for its version.

Solution: version-handler provides handlers for retrieving information
about firmware blobs. Adding "version" syntax to "/flash/blob" entries
in the json configuration file enables this feature.
The mechanism to retrieve version is identical to the mechanism used by
firmware-handler to perform preparation, verification and updates (kick
off systemd targets).

Signed-off-by: Jason Ling <jasonling@google.com>
Change-Id: I28868ca8dd76d63af668d2e46b9359401d45f0bc
diff --git a/bmc/test/image_mock.hpp b/bmc/test/image_mock.hpp
index 2a967ac..1d4f726 100644
--- a/bmc/test/image_mock.hpp
+++ b/bmc/test/image_mock.hpp
@@ -2,6 +2,8 @@
 
 #include "image_handler.hpp"
 
+#include <memory>
+
 #include <gmock/gmock.h>
 
 namespace ipmi_flash
@@ -19,4 +21,9 @@
     MOCK_METHOD0(getSize, int());
 };
 
+std::unique_ptr<ImageHandlerMock> CreateImageMock()
+{
+    return std::make_unique<ImageHandlerMock>();
+}
+
 } // namespace ipmi_flash