[nemo-qml-plugin-contacts] SeasideCache should not depend on SeasideFilteredModel

Preparing to extract SeasideCache to a separate library.
[nemo-qml-plugin-contacts] Move display label generation into the cache
[nemo-qml-plugin-contacts] SeasideCache should not depend on SeasidePerson

Create interface between the cache and the data element stored in the
cache items.
[nemo-qml-plugin-contacts] Export the SeasideCache instance

The cache should be the parent of item data objects
[nemo-qml-plugin-contacts] Remove duplication of QContact object

For Person objects that represent a cacheItem, use the contact object
held by the cache item.
[nemo-qml-plugin-contacts] Do not create filter keys unless used

filterKey storage is only required when using the filtered model.
[nemo-qml-plugin-contacts] Remove duplicated sorting code
[nemo-qml-plugin-contacts] Keep the cache populated if a model is registered

Otherwise, only maintain contacts which have been explicitly added to
the cache.
Merge pull request #19 from matthewvogt/reverse-deps

Fix dependencies so that SeasideCache can be extracted to a separate library