Remove caching behaviour from LstfmQuery
Use Repository pattern for search

- Return LastfmTracks from result parser
- Add integration test for initial search
- Cancel searches when Spotify disconnects
Move search task into lib.search module
Move track parsing into the celery task

and create LastfmTrack objects in the query, so there is no
db interaction in the task.