Nepomuk needs the Soprano includes, so make sure we provide that include directory as well
Add architecture text for Collections.
Add short text explaining Meta types.
typos--
Add short text about PlaybackQueue.
Explain how to implement simple queue manager behaviour.
architecture/Meta.txt: withdraw my passed-by-value proposal
Update current authors list as decided in Randa 2012
Fix typos in previous commit

Caused build failure and crash on start.
Authors code formatting, add IRC nicknames
Fix TestAmazonShoppingCart failing by instantiating Components::logger()

GMock emits warnings I don't understand, but the test now passes, which
means...

The last failing test in Jenkins is solved and it should go green! Yay!
(at least in theory)
Meta::Track: move statistics methods into statistics() interface

 * introduce Meta::Statistics, an interface to statistics-related
   methods. Memory manager using KSharedPtr.
 * remove (set)score(), (set)rating(), first/lastPlayed(), playCount()
   from Meta::Track and move it to Meta::Statistics
 * Because Meta::Statistics uses KSharedPtrs, existing track
   implementations can just inherit Statistics and return this; in
   Track::Statistics()
 * Existing Track subclasses with dummy implementations of (set)score(),
   (set)rating(), first/lastPlayed(), playCount() have it removed.
 * Existing Track subclasses with meaningful implementations of
   (set)score(), (set)rating(), first/lastPlayed(), playCount() turned
   into Meta::Statistics and statistics() method is added for them.

Next steps:
 * Make StatisticsProvider an implementation of Meta::Statistics, which
   will in turn immensely simplify all tracks that use them.
 * Add setPlaycount(), setFirst/LastPlayed() to Meta::Statistics and
   ditch StatisticsCapability.
 * Implement trackPlayed() in Meta::Track, ditch custom implementations.

Heavily based on Ralf's idea and patch in
https://git.reviewboard.kde.org/r/106276/ it is just attribute vs. the
subclass pattern + some minor details like notifyObservers() in
StatisticsStore, circular refcounting avoidance etc.

I want to deal with other track Capabilities in similar way in future,
the next one being EditCapability: I'd like to introduce Meta::Editable
and Meta::Track::editable() and rename {begin,end}MetaDataUpdate() to
just {begin,end}Update() to share even greater portion of code in Track
implementations.
Meta::Statistics: note about thread-safety
Adapt StatisticsProvider & co. to Meta::Statistics, rename

...and use directly in Track implementations, which saves some code.
Also move all to core-impl/suppor - it is just an implementation
detail.

Also modify PersistentStatisticsStore (legacy StatisticsProvider) to
call notifyObservers() as appropriate, which needs some friend
declarations in Meta.h. Use new Observer functionality to track
linked tracks without holding a reference to them. (to avoid circular
reference counting)
Add set{First,Last}Played(), setPlayCount() to Meta::Statistics, ditch StatisticsCapability

..and adapt IpodMeta::Track to the new scheme.
Meta::SqlTrack: use {begin,end}Update() for both Statistics and EditCapability

and make it thread-safe by changing m_batchUpdate from bool to int.
Also rename some methods to match other implementations and real
purpose. Add some docs.
Implement Meta::Track::finishedPlaying(), ditch redundant implementations

code sharing++! Also harmonize the logic, it is now:

Raise play count if one of these hold:
 * song is shorter than 30s and it has been played fully
 * song is longer than 30s and at least 50% was played
 * at least 5 minutes of the song was played
No need to mention PersistentStatisticsStore explicitly now
{Tag,Url}StatisticsStore: fix dates not read/saved due to wrong format used in sql

...we should really use some kind of db abstraction.
Meta::Statistics and subclasses: add docs and asserts wrt thread safety