Don't send location API navigations through NavigationScheduler

This is a small code change with a lot of test changes. The two most
common reasons for those changes are:
* Cases where the ordering of messages reaching the browser process
  changed in ways that browser_tests were sensitive to.
* A navigation scheduled by NavigationScheduler doesn't prevent a
  DidStopLoading() callback, but starting the navigation
  immediately does prevent DidStopLoading(). So location API
  navigations inside onload used to result in two pairs of
  DidStartLoading/DidStopLoading callbacks, where there is now only
  one pair.

Bug: 914587
Change-Id: I83b016041c4579a64cf9ccfd7876dba335b799d9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1526426
Commit-Queue: Nate Chapin <japhet@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653352}
17 files changed