Moved libspotify session object to its own class

Starting point for a module that would handle the communication to
libspotify. The idea is to eventually make a barrier behind this
module - no libspotify internals should be revealed to the users
of this module.

In this commit the sp_session object creation is put into this module.
The created object can still be fetched with the Session::session()
method since it's used in many places. But that method should be
removed eventually.
Moved the sp_session_config to the wrapper module

There is a Session::Config class in the wrapper that exposes
a more Qt like interface for the session configuration.
Moved logging in functionality in to the wrapper module

The login dialog no longer depends directly on libspotify.
Moved logging out functionality in to the wrapper module
Added a method for shutting down the spotify session
Moved the session callbacks to the wrapper

The user now gets Qt signals from the module for the various events
happening in the session. The audio playing is handled via a direct
callback since it needs to return a value so a queued signal connection
wouldn't work.

Introduced an internal SessionMaster class into the wrapper module.
There is one instance of this class per spotify session (although there
can be only one session in libspotify currently). This class makes sure
that the user's correct session listeners get the notifications when
something happens in the session.

The SessionMaster class is also responsible for telling libspotify to
process its events when it needs to do so. This task is now completely
hidden from the user and happens automatically without the user's
action of any kind.
Merge pull request #1 from mostman/master

Some updates for your spokify project...
Merge pull request #2 from mostman/master

Code cleanup
Added player

Each Session has a dedicated player instance. A handle to it can be
obtained through the Session object.

Playing now happens through this new interface.

Also changed SessionMaster::get() to return a reference instead of a
pointer - don't know why I had it that way before...
Moved player stuff to player files

Now player handles all audio related parts.

Moved the session callback functions to sessionMaster.cpp.
Added PlaylistContainer class

It's simply a wrapper around the libspotify's sp_playlistcontainer
struct currently.
Merge branch 'origin/master' into libspotifywrapper
Don't leak player's memory in SessionMaster
Don't leak the MainWindow at program exit
Session playlist container is obtained from Session

PlaylistView is constructed with a PlaylistContainer instance which it
uses for manipulating the playlists. This made PlaylistView not depend
on MainWindow anymore.
PlaylistContainer emits signals about changes

MainWindow connects to the session playlist container signals so deleted
the libspotify callback functions for this purpose from mainwindow.cpp.

SpokifyPlaylistContainer is a private subclass of PlaylistContainer that
makes the translation from libspotify callbacks to Qt signals.
Added a line to .gitignore
Added addPlaylist, removePlaylist and playlists getter to PlaylistContainer

Adding these methods made it possible to remove the sp_playlistcontainer
from the public interface.