Add format string constructors for Error module
Add printf-style format string variants of error constructors to reduce
boilerplate when error messages need interpolation:
- invalid_requestf, invalid_redirectf, invalid_urlf
- proxy_errorf, tls_handshake_failedf, tcp_connect_failedf
Also add non-format convenience constructors:
- tls_handshake_failed, tcp_connect_failed
Update callers in http_read.ml, proxy_tunnel.ml, retry.ml, and
redirect.ml to use the new format functions, reducing verbosity from:
raise (Error.err (Error.Invalid_request {
reason = Printf.sprintf "Invalid: %s" x
}))
To:
raise (Error.invalid_requestf "Invalid: %s" x)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>