Add ServiceIdentification

Implements GET and PATCH support for ServiceIdentification in
Managers/bmc and service root.

Tested:
- Refish Service Validator passes
- Tested on romulus:
1. GET initial value
```
curl -k "https://$BMC/redfish/v1"
{
  ...
}
```
ServiceIdentification is not yet present in service root,
as expected
```
curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/Managers/bmc"
{
  ...
  "ServiceIdentification": "",
  ...
}
```

2. PATCH and GET with valid value
```
curl -k -X PATCH "https://$BMC/redfish/v1/Managers/bmc" -H "X-Auth-Token: $XAUTH_TOKEN" \
    -H 'Content-Type: application/json' --data-raw '{"ServiceIdentification": "foo"}'
{
  "@Message.ExtendedInfo": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The request completed successfully.",
      "MessageArgs": [],
      "MessageId": "Base.1.19.Success",
      "MessageSeverity": "OK",
      "Resolution": "None."
    }
  ]
}

curl -k "https://$BMC/redfish/v1"
{
  ...
  "ServiceIdentification": "foo",
  ...
}

curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/Managers/bmc"
{
  ...
  "ServiceIdentification": "foo",
  ...
}
```

3. PATCH and GET with invalid value
```
curl -k -X PATCH "https://$BMC/redfish/v1/Managers/bmc" -H "X-Auth-Token: $XAUTH_TOKEN" \
    -H 'Content-Type: application/json' --data-raw '{"ServiceIdentification": "$$$"}'
{
  "ServiceIdentification@Message.ExtendedInfo": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The value provided for the property ServiceIdentification is not valid.",
      "MessageArgs": [
        "ServiceIdentification"
      ],
      "MessageId": "Base.1.19.PropertyValueError",
      "MessageSeverity": "Warning",
      "Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed."
    }
  ]
}

curl -k -X PATCH "https://$BMC/redfish/v1/Managers/bmc" -H "X-Auth-Token: $XAUTH_TOKEN" \
    -H 'Content-Type: application/json' --data-raw '{"ServiceIdentification": "2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"}'
{
  "error": {
    "@Message.ExtendedInfo": [
      {
        "@odata.type": "#Message.v1_1_1.Message",
        "Message": "The string 'ServiceIdentification' exceeds the length limit 99.",
        "MessageArgs": [
          "ServiceIdentification",
          "99"
        ],
        "MessageId": "Base.1.19.StringValueTooLong",
        "MessageSeverity": "Warning",
        "Resolution": "Resubmit the request with an appropriate string length."
      }
    ],
    "code": "Base.1.19.StringValueTooLong",
    "message": "The string 'ServiceIdentification' exceeds the length limit 99."
  }
}

curl -k "https://$BMC/redfish/v1"
{
  ...
  "ServiceIdentification": "foo",
  ...
}

curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/Managers/bmc"
{
  ...
  "ServiceIdentification": "foo",
  ...
}
```

Change-Id: I5b71a73e947ec64cabb8d93c8503a18fb43b8937
Signed-off-by: Corey Ethington <cethington@coreweave.com>
diff --git a/include/persistent_data.hpp b/include/persistent_data.hpp
index efdfcfa..d210800 100644
--- a/include/persistent_data.hpp
+++ b/include/persistent_data.hpp
@@ -104,6 +104,15 @@
                             systemUuid = *jSystemUuid;
                         }
                     }
+                    else if (item.first == "service_identification")
+                    {
+                        const std::string* jServiceIdentification =
+                            item.second.get_ptr<const std::string*>();
+                        if (jServiceIdentification != nullptr)
+                        {
+                            serviceIdentification = *jServiceIdentification;
+                        }
+                    }
                     else if (item.first == "auth_config")
                     {
                         const nlohmann::json::object_t* jObj =
@@ -298,6 +307,7 @@
             eventServiceConfig.retryTimeoutInterval;
 
         data["system_uuid"] = systemUuid;
+        data["service_identification"] = serviceIdentification;
         data["revision"] = jsonRevision;
         data["timeout"] = SessionStore::getInstance().getTimeoutInSeconds();
 
@@ -383,6 +393,7 @@
     }
 
     std::string systemUuid;
+    std::string serviceIdentification;
 };
 
 inline ConfigFile& getConfig()