Add support for post code handling/eventing

Add support to consume a JSON configuration which
will let a platform configuration to dictate if
we need to do special handling or logging based
on specific post codes received.

Tested:

1. Created the following config and after restarting
`xyz.openbmc_project.State.Boot.PostCode@0.service`:
```
[
    {
        "primary": [1,2,5],
        "event": {
            "name": "xyz.openbmc_project.State.SMC.SMCFailed",
            "arguments": {
                "IDENTIFIER": "test",
                "FAILURE_TYPE": "world"
            }
        }
    }
]
```

Created the primary post code:
```
root@bmc:~# busctl set-property xyz.openbmc_project.State.Boot.Raw /xyz/openbmc_project/state/boot/raw0 xyz.openbmc_project.State.Boot.Raw Value '(ayay)' 3 0x1 0x2 0x5 0x0
```
Check that the log is created:
```
root@bmc:~# busctl introspect -l xyz.openbmc_project.Logging /xyz/openbmc_project/logging/entry/2 xyz.openbmc_project.Logging.Entry | grep "AdditionalData\|Message"
.AdditionalData property  a{ss}     6 "FAILURE_TYPE" "world" "IDENTIFIER" "test" <snip>
.Message property  s "xyz.openbmc_project.State.SMC.SMCFailed"
```
2. Replace the config with:
```
[
    {
        "primary": [1,2,6],
        "targets": ["testservice.service"]
    }
]
```
Create a test unit file:
testservice.service:
```
[Unit]
Description=A simple oneshot service

[Service]
Type=oneshot
ExecStart=/bin/bash -c "echo Hello world > /tmp/test.txt"
```
Issue a new post code with the new config.
```
systemctl daemon-reload
systemctl restart xyz.openbmc_project.State.Boot.PostCode@0.service
root@bmc:/usr/lib/systemd/system# busctl set-property xyz.openbmc_project.State.Boot.Raw /xyz/openbmc_project/state/boot/raw0 xyz.openbmc_project.State.Boot.Raw Value '(ayay)' 3 0x1 0x2 0x5 0x0
root@bmc:/usr/lib/systemd/system# cat /tmp/test.txt
Hello world
```

Change-Id: Ibaa09fb88190a344fd7c4fadd24dda4aa4ae0633
Signed-off-by: Amithash Prasad <amithash@meta.com>
diff --git a/service_files/xyz.openbmc_project.State.Boot.PostCode.service b/service_files/xyz.openbmc_project.State.Boot.PostCode.service
index 35ffd1f..325922f 100644
--- a/service_files/xyz.openbmc_project.State.Boot.PostCode.service
+++ b/service_files/xyz.openbmc_project.State.Boot.PostCode.service
@@ -2,7 +2,7 @@
 Description=Post code manager
 
 [Service]
-ExecStart=/usr/bin/post-code-manager --host 0
+ExecStart=/usr/bin/post-code-manager --host 0 --config /usr/share/phosphor-post-code-manager/post-code-handlers.json
 SyslogIdentifier=post-code-manager
 Type=dbus
 BusName=xyz.openbmc_project.State.Boot.PostCode0
diff --git a/service_files/xyz.openbmc_project.State.Boot.PostCode@.service b/service_files/xyz.openbmc_project.State.Boot.PostCode@.service
index db21c21..d4e8274 100644
--- a/service_files/xyz.openbmc_project.State.Boot.PostCode@.service
+++ b/service_files/xyz.openbmc_project.State.Boot.PostCode@.service
@@ -2,7 +2,7 @@
 Description=Post code manager (host %i)
 
 [Service]
-ExecStart=/usr/bin/env post-code-manager --host %i
+ExecStart=/usr/bin/env post-code-manager --host %i --config /usr/share/phosphor-post-code-manager/post-code-handlers.json
 SyslogIdentifier=post-code-manager%i
 Type=dbus
 BusName=xyz.openbmc_project.State.Boot.PostCode%i