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.

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