Handle PSU inventory changes

Watch the PSU inventory property changes, so that when a PSU is plugged
out/in, the software object is removed or created.
If mutliple PSUs have the same software version, the related
associations are updated.

Tested: On Witherspoon, manually setting PSU's present property to false
        and true, when both PSUs have the same version.
        0. Before setting PSU's present false, verify the software
        object is associated with two PSUs;
        1. When one of the PSU is set false, verify the assocation is
        removed and only one PSU path is associated;
        2. When both of the PSUs are set false, verify the software
        object is removed;
        3. When a PSU is set to true, verify the software object is
        created and associated with the PSU;
        4. When the other PSU is set to true, verify the software object
        is associated with both PSUs.

Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: I417a87bf57c01aa57f78f09b7abc4e948a4d1752
2 files changed