[contactsd] Batch updates by change type

Group contact updates together according to the changes required, in
order to maximize the chance that an update will be classified as a
presence-only update.
[contactsd] Only update for actual changes to accounts

Verify that a change has occurred before updating an account and its
contacts.
[contactsd] Only update for actual changes to contacts

Verify that a change has occurred before updating a contact.
[contactsd] Minimize changes for contact information updates

Ensure that we only modify contacts if the telepathy information differs
from that already present in our contact.