Ensure that 'fetchMainResource' requests have a frame type.

This patch adds an ASSERT to 'ResourceFetcher::fetchMainResource' which
ensures that the request's FrameType is not FrameTypeNone, and uses that
information to ensure that the correct TargetType is synthesized when
heading back up into Chromium.

In order to make the ASSERT true, FrameLoader does a bit of work on the
NavigationAction it creates, and NavigationAction grows a
'mutableResourceRequest' method in order to allow that work to happen.

BUG=390497

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

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