[ios] Extend the life time of navigation context to error placeholder.

Also deferred WebStateObserver::DidFinishNavigation callback to after
placeholder load finishes. This removes an inconsistency between legacy
nav and slim nav handling of errors.

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