allow exceptions to be passed to Retry
retry only network requests
print the error class as well as the message
retry without exposing the URL password
stop retrying the resolver
remove @@spec_fetch_map
replace @public_uri with uri
move messaging into fetcher orchestration code
fix the bug that downloads every spec

basically, the bug happened anytime an API fetcher encountered an error
and fell back on the not-API. then the rubygems source would continue
to think that it should query every spec for dependencies, which would
trigger every spec to be downloaded. we now check for sources that have
changed from use_api to !use_api so we know to abort.
validate lockfile & the bundler version