Create CRWWKHTTPCookieStore & move cookies processing to the IO thread.

WKHTTPCookieStore doesn't have a public api to retrieve cookies for URL,
so we have to use getAllCookies for single URL requests. and for that we
have to filter returned cookies based on the URL.
CRWWHTTPCookieStore is a wrapper over WKHTTPCookieStore that workaround
its problems, it adds caching and ensure that the WebsiteDataStore exist
with each getCookies cakk

Move the filtering step to IO Process instead of UI. Also create a
cache to save cookies so getAllCookies isn't called if it's not needed.

Bug: 941643
Change-Id: Ia2a7048646b01650874567c4942e2d107405324f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538777
Commit-Queue: Mohammad Refaat <mrefaat@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653595}
17 files changed