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.