Allow zero-length QUIC frames to be sent
At the moment, doing QuicStream.end() without buffering new data will result in the stream end not being sent to the other endpoint. This is a result of zero-length QUIC frames not being supported by QUICker yet.
A more quic-centric explanation:
Currently, quicker only sends new STREAM frames if there is actual data for that stream. Ending a stream is just sending a STREAM frame with the appropriate frame type (FIN, length and offset are specified in the frame type, rather than a specific flag or something). Due to how our flow control now creates new frames from streams, this is an edge case we don't deal with yet.
Expected behaviour: stream.end() generates a 0-length STREAM frame with FIN set, ending that stream.