Land Recent QUIC Changes.

Common code changes to support per session QoS for QUIC.

The following is the internal description for the change:

"Creating a muxed QoS manager for handling QoS for multiplexed protocols.
 It basically allows one to track QoS per stream, and alter the
 per-connection QoS to the QoS of the highest QoS stream.

 Per session QoS for QUIC."

Merge internal change: 79965199
https://codereview.chromium.org/732773005/

Remove initial CWND from QuicConfig.

This CL turned out to involve more fiddling than I expected. Basically
does the following:

* Removes CWND from QuicConfig
* Adds an initial_congestion_window argument to the QuicConnection
  constructor
* QuicSentPacketManager sets this argument to 20 or 32 depending on
  is_secure

This CL spawned from comments in internal change: 78376494 regarding
deprecating the CWND/RTT fields in QuicConfig.

Merge internal change: 79952807
https://codereview.chromium.org/731743002/

QUIC - Keeping in sync with internal source tree.

+ In QUIC we always use "{" for if statements even they are one line.
+ Deleted extra line for parameter (it could fit in one line).

Merge internal change: 79909036
https://codereview.chromium.org/732883002/

No longer limit the exponential backoff to 5 times for QUIC crypto
retransmits.

This ensures QUIC doesn't have an amplification factor of more than 10:1
for handshake packets.

Merge internal change: 79819723
https://codereview.chromium.org/717403004/

Porting "moving protobufs" related code.

To keep code similar to internal source, moved CachedNetworkParameters
to a separate file to match the .proto file.

Merge internal change: 79766231
https://codereview.chromium.org/733693002/

[email protected]

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

Cr-Commit-Position: refs/heads/master@{#304372}
35 files changed