Fix a deadlock when there is a mismatch between stream lengths.

If it is possible to seek to a position in a file where there are no
subsequent video frames but the end of file has not been reached
gst_app_sink_pull_preroll will block forever.  Ensure there is a
frame available before calling.
Add a notify signal for the SeasidePerson id property

Solves binding errors from the id property; unfortunately, id is not
technically constant because of the setContact method.
Merge pull request #76 from special/contacts-id

Add a notify signal for the SeasidePerson id property
Add API to AccountManager to allow simpler retrieval of ServiceAccounts

Previously, no simple API existed to retrieve a service account which
is provided by a particular provider.  This commit adds such a function
to the AccountManager interface, and adds unit tests to ensure its
correctness.
Make test compile
Initialize enabledServiceNames from saved data when account data is loaded

The enabledServiceNames list was not initialized at account creation,
so an account as always sync'd with a version of this list that excluded
any previously enabled services for this account, thus overwriting the
saved list in the database with an incorrect list.
Merge pull request #79 from blammit/make-test-compile

Make test compile
Merge pull request #78 from blammit/fix-enabledServiceNames-init

Initialize enabledServiceNames from saved data when account data is load...
Merge pull request #77 from chriadam/master

Add API to AccountManager to allow simpler retrieval of ServiceAccounts for a Provider
Emit AccountModel::displayNameChanged() for newly added accounts and add some tests
Merge pull request #82 from blammit/account-model-fixes

Emit AccountModel::displayNameChanged() for newly added accounts and add some tests
Merge pull request #74 from adenexter/gstreamer-deadlock

Fix a deadlock when there is a mismatch between stream lengths.
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.