[contactsd] Trigger contacts-sync profiles when changes are detected

This commit adds logic to allow triggering of contacts sync profiles
when changes signals are received.  In order to be triggered, a profile
must be a contacts profile, it must be enabled, it must have to-remote
or two-way directionality, and it must have the always-up-to-date
setting set to true.
Merge pull request #64 from chriadam/alwaysuptodate

[contactsd] Trigger contacts-sync profiles when changes are detected
[contactsd] Process deletions before additions

A sync batch cannot include the same contact in both the deleted
set and either added or modified sets.  However, it is possible that
a contact could contain a detail, then be deleted, then a subsequent
creation/modification could include a detail that conflicts with the
first detail.  Therefore, we should process any deletions in the
batch prior to any other modifications, so that such cases do not
result in conflicts.
[contactsd] Handle mangled detail URIs correctly during export

Detail URIs in aggregate contacts are mangled to prevent accidental
clashes with unique values in constituent details. The mangled
forms include aggreagte ID values; since these vary between the
privileged and nonprivileged databases, the mangled forms must be
translated between their correct form for each database.
[contactsd] Add configuration variables for exporter

To enable debug output, set /org/nemomobile/contacts/export/debug to
a non-zero integer value.

To disabled export activity, set /org/nemomobile/contacts/export/disabled
to a non-zero integer value.