feat(ocaml-tls): make fuzz tests fully random
[main]: add Transmit `Drain to the op generator so drain mode is part
of the random action space rather than a hardcoded setup step. The TLS
state when each op executes is now determined entirely by the random
prefix of actions — the handshake may or may not be complete when any
given op runs. Remove quickstart since Path.close always enables drain
at the end, guaranteeing no deadlock even with no Transmit in the
action list.
[main_sm]: replace the hardcoded "drain both sockets from the start"
setup with two random pre-transmit sequences (one per direction). Each
sequence feeds random byte-chunk sizes through the socket before
enabling drain, so the point at which drain mode activates during the
handshake is part of the random input rather than always being t=0.