* qlog: implement a Trace and a Writer struct
* qlog: rename Trace to FileSeq
* split qlog trace writer and QUIC qlog events into separate packages
* use the new qlog.Recorder instead of the logging.ConnectionTracer
* handshake: store key update interval in an atomic
We recently changed the way the key update interval is set in tests to
use an environment variable. This resolved a race condition that existed
in the earlier logic, however, parsing of the environment variable now
shows up in benchmark tests.
Using an atomic variable should have a negligible performance impact.
* use an atomic swap
* use require in benchmark tests
* translate the QLOGDIR test
* translate handshake tests
* translate the handshake RTT tests
* translate the early data test
* translate the MTU tests
* translate the key update test
* translate the stateless reset tests
* translate the packetization test
* translate the close test
* translate the resumption test
* translate the tracer test
* translate the connection ID length test
* translate the RTT tests
* translate the multiplexing tests
* translate the drop tests
* translate the handshake drop tests
* translate the 0-RTT tests
* translate the hotswap test
* translate the stream test
* translate the unidirectional stream test
* translate the timeout tests
* translate the MITM test
* rewrite the datagram tests
* translate the cancellation tests
* translate the deadline tests
* translate the test helpers