With the HttpClient abstraction, we now allow users to switch HTTP client implementations in a standardized manner. E.g., the HttpCrawler implementation still contains references to got-scraping, which forces us to use hacks and casts when implementing other HttpClient-based classes.
Follow-up for #3163