text: Title: Reconsider HttpClient interface
  Body: As of now, the python `BaseHttpClient` look like this:
  
  https://github.com/apify/crawlee-python/blob/beac9fa0eb415caafc04cdaef2888e77fad915e0/src/crawlee/http_clients/_base.py#L55
  
  It has two methods, `send_request` and `crawl`. This is the first iteration of decoupled HTTP clients.
  
  Later on, we refactored the JS version to use this one:
  
  https://github.com/apify/crawlee/blob/f912b8b06da2bc4f3f3db508cc39c936a5c87f23/packages/core/src/http_clients/base-http-client.ts#L179
  
  It also has two methods, `sendRequest` and `stream`. Unlike the python version, the signatures of those methods match quite well. It is worth noting that the two serious attempts at implementing this interface (so far) both couldn't manage to implement `stream` correctly. Although we could probably live without it in the most common case, streaming is paramount for downloading files (potentially large ones), which is a use case that we want to support.
  
  We should simplify this interface and make it look the same in both versions. Any thoughts on how to achieve that? @vdusek @B4nan @barjin... and whoever else wants to chat :slightly_smiling_face: 