utils: Add function to get the latest version

This repo does not know which PSU version is the latest, and it lets the
vendor tool to decide which one is the latest.

This commit defines PSU_VERSION_COMPARE_UTIL which is expected to be a
tool that accepts arguments of a list of versions, and returns the
latest version string.

Tested: Put and configure to use the example get_latest_version on
        Witherspoon, verify the versionId with a larger version string
        is returned.

Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: Ic5a10d3724cf6a98b3979486c72d54f8deac7038
diff --git a/src/item_updater.hpp b/src/item_updater.hpp
index 2cccf68..2f23b1e 100644
--- a/src/item_updater.hpp
+++ b/src/item_updater.hpp
@@ -55,6 +55,7 @@
     {
         processPSUImage();
         processStoredImage();
+        getLatestVersionId();
     }
 
     /** @brief Deletes version
@@ -150,6 +151,9 @@
     /** @brief Scan a directory and create PSU Version from stored images */
     void scanDirectory(const fs::path& p);
 
+    /** @brief Get the versionId of the latest PSU version */
+    std::optional<std::string> getLatestVersionId();
+
     /** @brief Persistent sdbusplus D-Bus bus connection. */
     sdbusplus::bus::bus& bus;
 
@@ -174,6 +178,9 @@
 
     /** @brief This entry's associations */
     AssociationList assocs;
+
+    /** @brief A collection of the version strings */
+    std::set<std::string> versionStrings;
 };
 
 } // namespace updater