[libcontacts] Fetch extra details to faciliate search

When idle, fetch extra contact details used to populate the search model
data set.
[libcontacts] Allow properties to be specified for searchability

A model can now specify properties that should be loaded asynchronously
to facilitate searching.

The nickname property is now loaded in the first metadata retrieval,
since some contacts have no other name details.