Improve error handling.

 + We exit the script if `ffmpeg` cannot be found and give a helpful error message.
 + We catch every `Exception` which may arise while converting the song to MP3, not only `subprocess.CalledProcessError`.
 + We catch every `Exception` which may arise while deleting the temporary file, not just `OSError`.
Create temporary file after track is downloaded.