Threaded cover images

This is based on the refactor branch (#11) so may need some rebasing later on if there are changes over there.

As discussed in #9, this adds support for fetching album art in a separate thread, so that there is no lag before a notification is shown when the track changes.

First, the notification icon is set with 'media-playback-start'.  Then, the `FetchAndUpdateCoverIcon` thread is started, downloads or fetches the cover image from the cache, and updates the notification.

To prevent old threads overwriting new ones (i.e. if the user skips through songs quickly), a basic check on the start time of the current thread vs the start time of all other running threads is performed.  However this won't catch the case where an old, long-running thread doesn't finish until after a new, short-running thread has exited - the newer, terminated thread will not show up in the check (because it has terminated), and its notification will be overwritten.

Any suggestions for a better way of doing this?