Move NavigationRequest creation to NavigationController: 1/3

This Cl is the first in a 3 CL series to move the NavigationRequest
creation to the NavigationController. The end goal is to have Navigator
take a NavigationRequest as an argument to Navigate instead of the
pending NavigationEntry.

Summary of the changes in this CL:
1) Navigator
 - NavigatorImpl::RequestTransferURL becomes NavigateFromFrameProxy. It calls
   NavigationControllerImpl::NavigateFromFrameProxy instead of creating a
   NavigationEntry and navigating to it directly.
 - NavigatorImpl::NavigateNewChildFrame becomes
   StartHistoryNavigationInNewChild. It calls
   NavigationControllerImpl::StartHistoryNavigationInNewChild instead of creating
   a NavigationEntry and navigating to it directly.

2) NavigationController:
 - StartHistoryNavigationInNewChild is a new function that contains code that
   used to be in NavigatorImpl::NavigateNewChildFrame. It is called when creating
   a subframe during a history navigation. It will try to perform a history
   navigation in the child frame.
 - NavigateFromFrameProxy is a new function that contains code moved from
   NavigatorImpl::RequestTransferURL. It creates a NavigationEntry and a
   NavigationRequest for the navigation, and asks the Navigator to perform them.

Bug: 803859
Change-Id: I45891c21dc8f1e86e3f1bc1829ee3a92af1a5bfb
Reviewed-on: https://chromium-review.googlesource.com/959012
Commit-Queue: Camille Lamy <clamy@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555791}
9 files changed