ETA class for fetchers

This change introduces a common ETA class, that can be used by any fetcher needing to estimate a remaining time. It also replaces the per fetcher ETA implementations used now.