Add `safe_download` method to classes.song

Hopefully this will help avoid the 'temporary blacklisting' that
currently occurs with the `download` method, by more closely behaving as
Grooveshark's javascript client.

* The new method is (transparently) called by `download`
* Adds songs to queue before fetching stream key
* Marks streams as taking longer than 30 seconds as required by
  grooveshark
* Marks songs as downloaded
* Removes songs from queue