added a check for the http return code + download progress report

* Check the http return code before starting a download, urllib.retrieve does not do this by default
* show a download report ' X kb downloaded of XXX total kb (XX% complete) xxx kbps'
it doesn't make sense, but in this case you got a valid reply from the webserver, telling you that what you're trying is not what you want, so theres no reason to insist.
If we got a timeout or a temporary server error or anything else you could retry.