Used PImpl in Track

Track is now a light weight value type. The private parts are shared
among the copies so it is cheap to copy it. Also there is now no need to
make an inherited private class of Track since the libspotify parts are
hidden in the private class (the libspotify sp_track type is still
available in the interface of Track but that will be removed when the
time is right).

Used Track as a value now throughout the codebase instead of passing
pointers.

Introduced SpokifyConstructor. It's a service that has priviledges to
construct libspokify objects (i.e. Track at this time) using the wrapped
libspotify types. Hence SpokifyConstructor is a friend class of Track so
that it can access it's private parts.
Track duration can be queried from Track

Used the new function everywhere.
Track name can be queried from Track
Track popularity can be queried from Track
Load a track automatically when playing it

Removed the need to explicitly call load() before play() in Player.
Removed the whole load() method since there's no use for it currently.
Used PImpl in Playlist

Only libspokify needed changes since the interface didn't change.
Remove sp_playlist from PlaylistContainer interface

The sp_playlist parameter in the signals wasn't actually used for
anything.
Include Playlist.h

The destructor of Playlist wasn't actually called when deleting
Playlists without this include.
Moved playlist callbacks to signal emitting to libspokify