bmc_monitor_app: Adding BMC boot time monitor instance

Adding boot time monitor instance for BMC. The initialization is mostly
the same as host besides it doesn't have event to be matched.

Tested:
```
\# DBus interfaces are added
bmc:~# busctl introspect \
com.google.gbmc.boot_time_monitor \
/xyz/openbmc_project/time/boot/bmc
......
xyz.openbmc_project.Time.Boot.Checkpoint interface -          -             -
.GetCheckpointList                       method    -          a(sxx)        -
.RebootComplete                          method    -          -             -
.SetCheckpoint                           method    sxx        -             -
xyz.openbmc_project.Time.Boot.Duration   interface -          -             -
.GetAdditionalDurations                  method    -          a(sx)         -
.SetDuration                             method    sx         -             -
xyz.openbmc_project.Time.Boot.Statistic  interface -          -             -
.IsRebooting                             property  b          false         emits-change

\# Try to call `SetCheckpoint`
bmc:~# busctl call \
com.google.gbmc.boot_time_monitor \
/xyz/openbmc_project/time/boot/bmc \
xyz.openbmc_project.Time.Boot.Checkpoint \
SetCheckpoint sxx "bmc_checkpoint1" 0 0

\# Check if it set correctly
bmc:~# busctl --verbose call \
com.google.gbmc.boot_time_monitor \
/xyz/openbmc_project/time/boot/bmc \
xyz.openbmc_project.Time.Boot.Checkpoint \
GetCheckpointList
MESSAGE "a(sxx)" {
        ARRAY "(sxx)" {
                STRUCT "sxx" {
                        STRING "bmc_checkpoint1";
                        INT64 1693991949237;
                        INT64 76140790;
                };
        };
};
```

Google-Bug-Id: 296530445
Change-Id: Ifc556d3b1950c7fd9ff533b1d1c7525e89af80e6
Signed-off-by: Michael Shen <gpgpgp@google.com>
4 files changed