Reland Add web::NavigationContext::IsPlaceholderNavigation

This is a step in multistep refactoring. The next steps will be:

1.) web::NavigationContext::URL is never set to placeholder
    URL and always represents navigation URL
2.) Same web::NavigationContext will be reused for placeholder
    navigation to extend it's lifetime.
3.) WebStateObserver::DidFinishNavigation will be caller after
    placeholder navigation is finished and will use original
    web::NavigationContext passed to WebStateObserver::DidStartNavigation

This will partially fix crbug.com/903497 and will call
WebStateObserver::DidFinishNavigation after committed URL actually
changed.

Originally Reviewed-on: https://chromium-review.googlesource.com/c/1331044

Bug: 903497
Change-Id: I0ee2ecdfb4d20d2f14fd62e99028e8de1b81ff3b
Reviewed-on: https://chromium-review.googlesource.com/c/1347212
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610238}
10 files changed