eds: Ensure that property changes are signalled before .change_*() returns
We can't rely on E.BookClientView.objects_modified being emitted before
E.BookClient.modify_contact() returns. In order to guarantee that the
relevant properties will be notified before Edsf.Persona.change_*() returns,
we therefore move all calls to modify_contact() into a new
Edsf.PersonaStore._commit_modified_property() method, and block returning
from that on receipt of a property change notification from e-d-s.
However, we also add a timeout to _commit_modified_property() (defaulting to
30 seconds), so that if we don't receive a property change notification in
that time period, we error out from the .change_*() method.
Helps: bgo#657510