url: Wrap soft InfiniteRedirection in ResponseFailed

This is more consistent with what Twisted itself does.
chanlog: Perform own log rotation
topic: Add configurable maximum length and ignore list