Use error codes to determine if next mirror is required

Moved from urllib2 to requests module in order to deal with head requests properly 
Augments 951fc1a in fixing #5