PEL: Fixes for gcc13

* Add the cstdint header file as now required to get the uint* types.
* Fix a move assignment test
* Refactor some nlohmann::json code to avoid:

```
/usr/include/c++/13/valarray:1201:1: note:   template argument deduction/substitution failed:
../extensions/openpower-pels/registry.cpp:665:43: note:   ‘const nlohmann::json_abi_v3_11_2::basic_json<>::value_type’ {aka ‘const nlohmann::json_abi_v3_11_2::basic_json<>’} is not derived from ‘const std::valarray<_Tp>’
  665 |             (name == j["SRC"]["ReasonCode"] && type == LookupType::reasonCode));
```

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ia3e733602134a60008d0d47934f95a217d2a0eb1
diff --git a/extensions/openpower-pels/registry.cpp b/extensions/openpower-pels/registry.cpp
index e646928..aeba998 100644
--- a/extensions/openpower-pels/registry.cpp
+++ b/extensions/openpower-pels/registry.cpp
@@ -659,10 +659,11 @@
     const auto& registry = reg.value();
     // Find an entry with this name in the PEL array.
     auto e = std::find_if(registry["PELs"].begin(), registry["PELs"].end(),
-                          [&name, &type](const auto& j) {
-        return (
-            (name == j["Name"] && type == LookupType::name) ||
-            (name == j["SRC"]["ReasonCode"] && type == LookupType::reasonCode));
+                          [&name, &type](const nlohmann::json& j) {
+        return ((name == j.at("Name").get<std::string>() &&
+                 type == LookupType::name) ||
+                (name == j.at("SRC").at("ReasonCode").get<std::string>() &&
+                 type == LookupType::reasonCode));
     });
 
     if (e != registry["PELs"].end())