Don't rely on the pending NavigationEntry for location.replace.

This CL adds a should_replace_current_entry param to commit IPCs,
and it ensures the WebDataSource is accurate on browser-initiated
navigations.  To keep the CL manageable, it does not yet change
same-process location.replace navigations from EXISTING_PAGE to
NEW_PAGE, though we want to do that as well.

BUG=317872
TEST=No behavior change.
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

Review URL: https://codereview.chromium.org/1672373002

Cr-Commit-Position: refs/heads/master@{#374223}
7 files changed