Remove implicit conversions

Implicit conversions are something that nlohmann library itself is a bad
default, and 3 years ago threatened to change the default.  These
implicit conversions cause a number of crashes that are hard to
reproduce, because they throw an uncaught exception.

Update the code to be able to do no more implicit conversions.

Tested: Entity-manager launches and runs.  Items are detected correctly
and show up on dbus.  Unit tests pass.

Change-Id: Ib23159ae58f5584641427d9be7545bc25a3619af
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/src/entity_manager/utils.hpp b/src/entity_manager/utils.hpp
index a8bba16..14e35cc 100644
--- a/src/entity_manager/utils.hpp
+++ b/src/entity_manager/utils.hpp
@@ -27,16 +27,16 @@
 
 bool fwVersionIsSame();
 
-void handleLeftOverTemplateVars(nlohmann::json::iterator& keyPair);
+void handleLeftOverTemplateVars(nlohmann::json& value);
 
 std::optional<std::string> templateCharReplace(
-    nlohmann::json::iterator& keyPair, const DBusObject& object, size_t index,
+    nlohmann::json& value, const DBusObject& object, size_t index,
     const std::optional<std::string>& replaceStr = std::nullopt,
     bool handleLeftOver = true);
 
 std::optional<std::string> templateCharReplace(
-    nlohmann::json::iterator& keyPair, const DBusInterface& interface,
-    size_t index, const std::optional<std::string>& replaceStr = std::nullopt);
+    nlohmann::json& value, const DBusInterface& interface, size_t index,
+    const std::optional<std::string>& replaceStr = std::nullopt);
 
 std::string buildInventorySystemPath(std::string& boardName,
                                      const std::string& boardType);