* bzrlib/transport/__init__.py: (do_catching_redirections): Raise TooManyRedirections instead of requiring an exception as a parameter.
* bzrlib/tests/test_http.py: (TestHTTPRedirections.setUp): Simplified. (TestHTTPRedirections.test_read_redirected_bundle_from_url): New test. (TestDoCatchRedirections): New tests.
* bzrlib/tests/HTTPTestUtil.py: (TestCaseWithRedirectedWebserver): New class factored out from test_http.TestHTTPRedirections.
* bzrlib/errors.py: (TooManyRedirections): New exception.