hothd: Implement Activation interface for Software

Bmcweb is expecting all software to have activation interface
implemented to determine the Status of the software.

If hothd is up and running and can communicate with the Hoth chip,
then Activation status should be active. Since if there is communication
error, hothd will exit and not register any dbus object, hence the
activation will always be Active for both version of the software.

Tested:
```
root@jkbs2-nfd01:~# busctl introspect xyz.openbmc_project.Control.Hoth /xyz/openbmc_project/software/hoth_ro
NAME                                    TYPE      SIGNATURE RESULT/VALUE                             FLAGS
org.freedesktop.DBus.Introspectable     interface -         -                                        -
.Introspect                             method    -         s                                        -
org.freedesktop.DBus.Peer               interface -         -                                        -
.GetMachineId                           method    -         s                                        -
.Ping                                   method    -         -                                        -
org.freedesktop.DBus.Properties         interface -         -                                        -
.Get                                    method    ss        v                                        -
.GetAll                                 method    s         a{sv}                                    -
.Set                                    method    ssv       -                                        -
.PropertiesChanged                      signal    sa{sv}as  -                                        -
xyz.openbmc_project.Software.Activation interface -         -                                        -
.Activation                             property  s         "xyz.openbmc_project.Software.Activatio… emits-change writable
.RequestedActivation                    property  s         "xyz.openbmc_project.Software.Activatio… emits-change writable
xyz.openbmc_project.Software.Version    interface -         -                                        -
.Purpose                                property  s         "xyz.openbmc_project.Software.Version.V… emits-change writable
.Version                                property  s         "0.0.343/36e0ecd5 ok"                    emits-change writable
<.Control.Hoth /xyz/openbmc_project/software/hoth_ro xyz.openbmc_project.Software.Activation Activation
s "xyz.openbmc_project.Software.Activation.Activations.Active"

root@jkbs2-nfd01:~# curl localhost/redfish/v1/UpdateService/FirmwareInventory/hoth_ro
{
  "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/hoth_ro",
  "@odata.type": "#SoftwareInventory.v1_3_0.SoftwareInventory",
  "Description": "Unknown image",
  "Id": "hoth_ro",
  "Name": "Software Inventory",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "Updateable": false,
  "Version": "0.0.343/36e0ecd5 ok"
}
root@jkbs2-nfd01:~# curl localhost/redfish/v1/UpdateService/FirmwareInventory/hoth_rw
{
  "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/hoth_rw",
  "@odata.type": "#SoftwareInventory.v1_3_0.SoftwareInventory",
  "Description": "Unknown image",
  "Id": "hoth_rw",
  "Name": "Software Inventory",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "Updateable": false,
  "Version": "0.5.2024071810/bmc_mobo_hoth"
}
root@jkbs2-nfd01:~# systemctl stop hothd
root@jkbs2-nfd01:~# systemctl status hothd
○ hothd.service - Hoth control daemon
     Loaded: loaded (/usr/lib/systemd/system/hothd.service; enabled; preset: enabled)
     Active: inactive (dead) since Thu 2024-12-26 19:33:42 PST; 20s ago
   Duration: 2month 2w 4d 14h 50min 12.757s
 Invocation: e28b5252bed5483e84b3f03f0ad0b4b1
    Process: 423 ExecStart=/usr/libexec/hothd -b (code=killed, signal=TERM)
   Main PID: 423 (code=killed, signal=TERM)
        CPU: 54.681s
root@jkbs2-nfd01:~# curl localhost/redfish/v1/UpdateService/FirmwareInventory/
{
  "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",
  "@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection",
  "Members": [
    {
      "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bios_active"
    },
    {
      "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/de149a25"
    }
  ],
  "Members@odata.count": 2,
  "Name": "Software Inventory Collection"
root@jkbs2-nfd01:~# busctl introspect xyz.openbmc_project.Control.Hoth /xyz/openbmc_project/software/hoth_ro
Failed to introspect object /xyz/openbmc_project/software/hoth_ro of service xyz.openbmc_project.Control.Hoth: The name is not activatable
```

Google-Bug-Id: 384444534
Change-Id: I95167df8d971c5ed862c29a5212aa0933f9ab32d
Signed-off-by: Munawar Hussain <munawarhussain@google.com>
2 files changed