feat(rust/curl): NTLM + SOCKS proxy + --libcurl C emitter — 906/906 passing
Adds NTLMv1 client authentication for HTTP and CONNECT proxy tunnels
(Type 1/Type 2/Type 3 messages, MD4 NT-hash, DES key expansion,
OEM/ASCII user encoding, per-connection state, --anyauth NTLM
fallback, proxy NTLM + chained site Digest, redirect-aware reset on
Connection: close), SOCKS4/4a/5/5h proxy support (greeting +
optional RFC 1929 user/pass auth + CONNECT, atyp=1/4 for literal IPs
even in SOCKS5h, atyp=3 for hostnames, userinfo from proxy URL when
-U is unset, no Proxy-Authorization slipping through), and a
--libcurl C-code emitter that generates curl_easy_setopt() calls for
the URL (with ? backslash-escaped to dodge trigraphs), optional
CURLOPT_PROXY, CURLOPT_POSTFIELDS using curl's C-escape rules (3-digit
octal when the next byte is a hex digit, \xNN hex otherwise),
CURLOPT_USERPWD + CURLOPT_HTTPAUTH=BASIC, CURLOPT_HTTPHEADER slist,
CURLOPT_COOKIE, CURLOPT_SSLVERSION combining --tlsv1.x and --tls-max,
CURLOPT_PROXY_SSLVERSION for --proxy-tlsv1, and CURLOPT_PROTOCOLS_STR.
Also: SOCKS5h long-hostname error code 97.
Signed-off-by: Niclas Overby <niclas@overby.me>