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'
store the total expected filesize and the absolute current block id and total number of blocks(outside the if block!). then when the download is supposed to have finished, check if the filesize matches the expected size. if not, report error (X blocks out of Y downloaded) and maybe remove the partial download?