Standardize cookie handling

Currently we have 3 main cookie handling mechanisms depending on the HTTP client or browser, and none work correctly.

  1. HttpxHttpClient.
    This solution is closest to expected. Cookies are stored in Session. However, we use dict which loses the cookie-domain relationship. This can cause issues during cross-domain crawling.

  2. CurlImpersonateHttpClient.
    Session knows nothing about cookies and all cookies are stored at the AsyncSession level. As a result, if we don't use proxies, all sessions have identical cookies. If we work with proxies, cookies become tied to the proxy.

  3. Playwright.
    Session knows nothing about cookies and all cookies are stored at the PlaywrightContext level, meaning all sessions working from one context will operate with the same cookies.