Transfer the URLLoaderClient on navigation commit

This CL has effect on the code only when the NetworkService or the
NavigationMojoResponse features is enabled.

During a navigation, after the headers are received, this CL unbinds the
browser-side URLLoaderClient implementation. It passes the pair of
URLLoaderPtr/URLLoaderClientRequest to the renderer. Then it binds it to
the renderer-side URLLoaderClient implementation that will be used to
continue the navigation (it will receive OnStartLoadingResponseBody()
and OnComplete()).

As a side effect, several additionnal things had to be done:
1) When the navigation is intercepted by the download manager, the same
   kind of thing as above must be done. Instead of the renderer, the
   download manager should get the URLLoaderPtr/URLLoaderClientRequest
   pair and continue the loading.
2) When the load is handled by the URLFileLoader, there was a deadlock,
   the URLLoader and the URLLoaderClient were waiting for each other to
   closing their datapipe endpoints. This is solved by closing the
   URLFileLoader's one first when it has written its last byte.
3) Same as in 2), but with the URLFileDirectoryLoader.

See the others CLs in this series:
[1/3] https://chromium-review.googlesource.com/c/739502
[2/3] https://chromium-review.googlesource.com/c/741237
[3/3] this CL.

This is part 3 of the implementation plan.
Design doc: https://goo.gl/Rrrc7n

Bug: 705744
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo;master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I9df447e28afe119dc678adac943a000de6787bf4
Reviewed-on: https://chromium-review.googlesource.com/753738
Commit-Queue: Arthur Sonzogni <[email protected]>
Reviewed-by: Nasko Oskov <[email protected]>
Reviewed-by: Camille Lamy <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Reviewed-by: Min Qin(OOO 12/7-1/10) <[email protected]>
Reviewed-by: Yutaka Hirano <[email protected]>
Cr-Commit-Position: refs/heads/master@{#522470}
45 files changed