Refactor Seaside models to improve perceived performance.

Prioritize querying the minimal amount of information required to
display a list of favorites on initialization so something can be
presented with the smallest of delays.  Once that's done basic data
for the rest of the contacts can be queried so complete or filtered
lists can be presented.  Finally the full contact data required for
individual display and editing is pulled in on demand.
Split out filtering from the synchronization logic.

While this amounts to more lines of code it is cleaner and more linear.
It should also be faster as the the pure synchronization use no longer
bears the overhead of filtering, each id is only ever checked againt
the filter once, and most importantly it groups changes better resulting
in fewer updates of any connected view.
Exclude the self contact as part of the query.

This doesn't appear to have any measurable affect on query times,
whereas querying the id through QContactManager takes around 130ms
on the hardware tested.
Fix up issues with Sparql direct connection disabled.

Some compilation issues, missing optimisations and self contact
filtering.
Always return a SeasidePerson instance for a contact id.

If the contact isn't in the cache it may just be delayed, return
a person anyway and the data will come later.
Return all the numbers associated with a contact in the initial query.
Merge pull request #73 from adenexter/contacts-refactor

Refactor Seaside models to improve perceived performance.
Add social network abstraction adapters

Most social networks provide API to allow applications to request or
upload data to their services.  This commit adds adapters which
provide some convenience abstractions to allow various social networks
to be supported, as well as a specific implementation of those
abstractions for a popular social network: Facebook.
Merge pull request #80 from chriadam/master

[nemo-qml-plugins] Add social network plugin
Allow setting an account identifier after initialization

Previously, setting the account identifier was only allowed during
initialization.  This commit allows the account identifier to be set
after initialization, provided that the account is invalid.
Add encode() and decode() functions to Account and ServiceAccount

These functions allow encoding strings in various formats (eg, for
network transmission or storage in latin1 / plaintext formats), and
are provided as a convenience for application developers.
Note that the implementation of the encoding schemes is non standard.
Merge pull request #85 from chriadam/encoder

Add encode() and decode() functions to Account and ServiceAccount
Merge pull request #84 from chriadam/identifier

Allow setting an account identifier after initialization
Merge pull request #83 from zchydem/master

Bugfix for loading the same image/thumbnail twice caused loading error.
Add 'enabled' role to AccountModel
Merge pull request #86 from blammit/enabled-role

Add 'enabled' role to AccountModel
Assorted fixes.

Default to displaying all contacts rather than none as it's confusing
and a litte error prone that the model displays nothing without setting
a filter.

Don't ignore results from refreshed updates, and fix errors not caught
because that wasn't happening.

Use the custom label from QContact if a first/last name isn't available
before falling back to an alternative.

Resolve names from IM accounts correctly in sparql query.

When querying for favorites, test the value not just the existence of
the property.

Fallback to the imAvatar if there is no photo for a contact, and emit
dataChanged if the url for an avatar has changed.
Allow arbitrary requests to be performed via SocialNetwork

This allows clients to perform some request to, for example, retrieve
the identifier of some graph object that they wish to set as the node
in the model, without going through multiple request round trips.
Merge pull request #87 from chriadam/master

Add arbitrary request API to SocialNetwork adapter
[Email] - Add lastUpdatedAccountTime() binding.