[libcontacts] Improve utility of avatarUrl role.

Previously, no metadata preference was built into the default
avatarUrl role logic.  This commit changes the filteredAvatarUrl
function to prefer local picture avatars over cover-type avatar
images.
Merge pull request #55 from chriadam/fallbackavatar

[libcontacts] Improve utility of avatarUrl role.
[libcontacts] Avoid fallback to non-name details when grouping

Including this fallback option leads to the following undesirable
scenario:
  1. contact details yield a group which is not in the allGroups set
  2. the contact is originally grouped in the '#' group
  3. when the contact's addresses are later retrieved, the fallback
     code re-classifies the contact under a group derived from a
     non-name property of the contact
  4. the contact is no longer visible under the original group; the
     new group has no connection to the contact's displayed name,
     and cannot be reliably predicted by the user
Merge pull request #56 from matthewvogt/remove-grouping-fallback

[libcontacts] Avoid fallback to non-name details when grouping
[libcontacts] Do not use iterators during coalescing

This practice is possibly affected by iterator invalidation in some
way I can't locate.  In any case, index-based operations are not
going to make any performance difference.
Merge pull request #58 from matthewvogt/remove-iterators

[libcontacts] Do not use iterators during coalescing