[contactsd] Do not respond to presence updates

Birthday plugin handles only non-presence changes; telepathy plugin
ignores all contact changes.
[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.
[contactsd] Suppress avatar changes where URL does not change

Although it is possible for the content of an avatar URL to change
without the URL itself changing, each connectivity change is flagged
by telepathy to include an avatar update - if we do not suppress the
avatar update with unchanged URL, each change to connectivity causes
full contact changes rather than just prsence changes.
[contactsd] Do not attempt to remove empty avatar