Uniformize dependency translation errors.
There was a non-uniform set of exceptions being raised and trapped (or not!)
in the translation call paths. This unfiromizes Web and CachedWeb to always
raise FetchError when opening urls and then hardens SourceLink and EggLink
to trap for this and re-raise UnreadableLink when attempting link fetches.
Finally, EggTranslator and SourceTranslator now trap Link fetch errors and
log & return None to allow Obtainer to proceed to the next available link if
any instead of failing fast on a bad link.
$ ./pants tests/python/twitter/common/python/:all
Travis-ci is away here: https://travis-ci.org/twitter/commons/builds/19521497
That should get past the error:
FetchError: <urlopen error Could not reach http://antlr3.org/download/Python/antlr_python_runtime-3.1.3.tar.gz within deadline.>
And fall back to the sdist here: https://github.com/twitter/commons/tree/binaries/pants/third_party/python