Redownload cached files and on_complete event fix

* If a file is found in cache, compare the expected length with
actual length and redownload if not matching.
* Stop portaudio stream when track is finished to prevent retriggering
of tracks.
Merge georgi's fixes