PlzNavigate: Invoke didStartProvisionalLoad() when the renderer initiates a navigation early on in FrameLoader::startLoad()

A number of layouttests fail because the didStartProvisionalLoad() notification comes in for PlzNavigate after
didFinishDocumentLoad() notification is called. In the non PlzNavigate case the load is handled in blink and hence the
notifications happen in the correct order.

Approach being tried is to invoke didStartProvisionaLoad() in FrameLoader::startLoad() when we find that a navigation is being
handled by the client. Ideally we would want to invoke this notification early regardless of whether PlzNavigate is on. However
a number of tests and codepaths assume that the current document would be unloaded before we receive the provisional load notification
for the non PlzNavigate case. We create a temporary loader just for the purpose of firing the didStartProvisionalLoad()
notification.

Most of the changes in this patch are boilerplate changes to the didStartProvisionalLoad() function.

BUG=638900
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2661743002
Cr-Commit-Position: refs/heads/master@{#448695}
34 files changed