Implement Inventory.Item for CPU presence

Bmcweb Redfish code now relies on the xyz.openbmc_project.Inventory.Item
interface to determine Processor presence status. And if this interface
does not exist, CPUs are shown as Present by default. Therefore, to
avoid false positive presence, this commit fills out the interface based
on Status field of the Type 4 table.

Tested:
GET /redfish/v1/Systems/system/Processor/cpu1 (unpopulated socket)
-> Before change:
{
    ...
    "Manufacturer": "CPU1",
    "MaxSpeedMHz": 4000,
    "ProcessorId": {
        "EffectiveFamily": "Unknown Processor Family"
    },
    "Socket": "CPU1",
    "Status": {
        "Health": "OK",
        "State": "Enabled"
    },
    "Version": "CPU1"
    ...
}
-> After change:
{
    ...
    "Manufacturer": "",
    "MaxSpeedMHz": 0,
    "ProcessorId": {
        "EffectiveFamily": ""
    },
    "Socket": "CPU1",
    "Status": {
        "Health": "OK",
        "State": "Absent"
    },
    "Version": ""
    ...
}

GET /redfish/v1/Systems/system/Processor/cpu0 (populated socket)
-> Before/after change:
{
    ...
    "Status": {
        "Health": "OK",
        "State": "Enabled"
    },
    ...
}

Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
Change-Id: I8868919e3f919d774b8bedb6c48cc6e4bc764c26
2 files changed