Remapping Quic HTTP data stream into HTTP/3 format.

Previously data that passes through QuicSpdyStream is simply the raw body. In HTTP/3, data are contained in data frames. This CL implements data frames.

When the stream wants to write data, HttpEncoder will be used to produce a frame header that will be sent before the body.

On the other side when the stream receives new data from the sequencer, HttpDecoder will be used to strip the header and then the stream will store the actual body that will be available for applications to use.

Merge internal change: 226378053

Update QuicSpdyStream's constructor from PendingStream consistent with the original constructor. Version 99 only. Not protected.

Merge internal change: 226924343

Change-Id: Ieb516c83f5f8fa673928c5ad8be304f90ab24d63
Reviewed-on: https://chromium-review.googlesource.com/c/1399423
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Renjie Tang <renjietang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622216}
31 files changed