Set the value of a property in a property list.
function searches property list
from the beginning for a property whose key is
If such a property is found, its value is changed to
Otherwise, a new property whose key is
and value is
is appended at the end of
See the documentation of
for the restriction on
is a managing key,
must be a managed object. In this case, the reference count of the old value, if not
is decremented by one, and that of
is incremented by one.