Refactor ResourceFetcher::determineRevalidationPolicy

This change should not have any functional change.
The only possible behavioral change is that we no longer
will re-use main-document resources which do not match
CORS. Speaking with Nate, we believe that main-document
check to be a noop and thus I removed it.

This moves the logic for validating ResourceLoaderOptions
into that class, and adds a ton of FIXMES about how
we are incorrectly re-using requests with non-matching
ResourceLoaderOptions.  In my change for:
https://codereview.chromium.org/258013009/
(which causes us to go down the preloader codepaths more regularly)
those FIXMEs cause us to re-use preload requests which
we should not be.  I'll have to fix some of them in
that change in order to pass the tests.

The majority of this change is refactoring
determineRevalidationPolicy to take a FetchRequest instead
of individual arguments and then using the non-mutable
resourceRequest() accessor and fix ResourceRequest
non-const methods to just use a 'mutable' marked cache.
ResourceRequest was confusing 'physical' const with
'logical' const, I fixed these methods to be logically const.

BUG=356292

Review URL: https://codereview.chromium.org/333353006

git-svn-id: svn://svn.chromium.org/blink/trunk@176790 bbb929c8-8fbe-4397-9dbb-9b2b20218538