Fix tray icon not updating it's tool tip
Refactor Playlist

There's no PlaylistModel anymore. It's been converted into Playlist
with only one column returning the metadata.

The mapping for PlaylistView is done through PlaylistProxyModel, which
creates virtual columns.

Player now owns the playlist and is in direct charge of switching tracks
and controlling current tracks, switching to next track, etc.

This also fixes various bugs related to playlist length, clearing playlist,
filtering, sorting, etc.