mapper: Support association property removes
mapper: Support association property removes

When the org.openbmc.Associations.association property changes,
the change may entail removing entries from that property,
in which case association objects may need to be removed.

The existing code did not support this at all, it only
supported adding new associations.

This is done with the help of the associationOwners map, to
know which previous associations an object path and service
had so that it can tell when ones go away.

As a reminder, if an org.openbmc.Associations.associations
property under /path/A looks like:

    ['forward', 'reverse', '/path/B'],

then the mapper will create 2 new objects - /path/A/forward
and /path/B/reverse, with xyz.openbmc_project.Association.endpoints
property values on them of ['/path/B'], and ['/path/A'], respectively.

If that associations property is then cleared, the mapper
needs to remove the objects it created, assuming there is no
other service that also has an association that requires them.

Resolves openbmc/phosphor-objmgr#16

Change-Id: I28defa831e5aefe8dd09b96c1b104fc1610471d6
Signed-off-by: Matt Spinler <c000c989d08c98662d98f15448f11de169feb92d@us.ibm.com>

openbmc/phosphor-objmgr,openbmc/phosphor-objmgr