Separate WebNavigationControl out of WebLocalFrame

This gives us precise control over callers of navigation-related
methods. This technique allows to update navigation sequence
without worrying that some client will mess up the calls.

For example, the immediate application is to get rid of some
WebLocalFrameClient callbacks like DidStartProvisionalLoad.
RenderFrameImpl will manage them itself, given that it has full
control of all the navigations that commit. This will remove
a lot of indirection we currently have, and bring us closer to
removing provisional document loaders.

This corresponds to the step 7.a from the one-pager (see bug).

TBR=mmenke,tommycli,thestig

Bug: 855189
Change-Id: Iaff018955e86cbc3a5ba73a5d58e070f3095782a
Reviewed-on: https://chromium-review.googlesource.com/c/1257550
Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611482}
23 files changed