Add Ipmb Sensor

Add daemon responsible for polling ipmb for sensor
readings. Currently base ME and VR bridge sensors
are supported. This daemon uses ipmbd to get sensor
readings.

Tested-by: Saw correct readings on d-bus and verified
sensor list.

Change-Id: I71c216ae57567470d42180dce76aba8f69ecb50e
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/include/Utils.hpp b/include/Utils.hpp
index 006c2bc..598662a 100644
--- a/include/Utils.hpp
+++ b/include/Utils.hpp
@@ -45,6 +45,12 @@
 void findLimits(std::pair<double, double>& limits,
                 const SensorBaseConfiguration* data);
 
+enum class PowerState : bool
+{
+    on,
+    always
+};
+
 template <typename T>
 inline T loadVariant(
     const boost::container::flat_map<std::string, BasicVariantType>& data,
@@ -61,6 +67,11 @@
         return sdbusplus::message::variant_ns::visit(VariantToDoubleVisitor(),
                                                      it->second);
     }
+    else if constexpr (std::is_unsigned_v<T>)
+    {
+        return sdbusplus::message::variant_ns::visit(
+            VariantToUnsignedIntVisitor(), it->second);
+    }
     else if constexpr (std::is_same_v<T, std::string>)
     {
         return sdbusplus::message::variant_ns::visit(VariantToStringVisitor(),