Use the same HttpStreamFactoryImpl for Websockets.

Currently, HttpNetworkSession owns two HttpStreamFactoryImpl instances:
one for Websocket requests, one for other requests.  This is
unnecessary.  This CL makes HttpNetworkSession own and use a single
HttpStreamFactoryImpl for all requests.

HttpStreamFactoryImpl manages JobControllers, and JobController manages
Jobs.  Every JobController and Job corresponds to a request and is thus
either Websocket or non-Websocket.  Before this CL, Job called
JobController through the Job::Delegate interface to find out whether
it was for a Websocket request, and JobController called
HttpStreamFactoryImpl.  This CL removes these calls and instead passes a
Boolean in the constructors that is stored in const members of
JobController and Job.

Bug: 801564
Change-Id: I9e5784713f38dd5871455c96626e9e0d3354e160
Reviewed-on: https://chromium-review.googlesource.com/864562
Commit-Queue: Bence Béky <bnc@chromium.org>
Reviewed-by: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529314}
17 files changed