Prepare SimRequest to browser-side navigation

Currently, we simulate navigation requests using SimRequest
not quite similar to the real navigation requests. We allow
asynchronous Start() call which is not the case for browser-side
navigation requests which come with synchronous response.

We plan to commit navigation synchronously after receiving
response, and tests should be ready for that.

Changes in this patch:
- SimRequest now starts immediately when response is received.
  Most SimRequests in tests are navigation requests, so they are
  now compatible to the browser-side navigation flow.
- To emulate subresources which may start asynchronously, a new
  SimSubresourceRequest is introduced. This one is currently used
  for all existing subresources in tests, to preserve the
  behavior. In reality, there should rarely be a need for
  asynchronous response, even for subresources.

Bug: 855189
Change-Id: I125fd6dbe5522947d34ae755b653783246eb4695
Reviewed-on: https://chromium-review.googlesource.com/c/1387667
Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Nate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618804}
18 files changed