oauth: Client_auth type for RFC 6749 §2.3.1 client authentication
Replaces the scattered ~client_id/~client_secret arguments with a single
Client_auth.t value that captures the authentication method. Supports
none (public client), basic (Authorization header, preferred), and post
(credentials in form body). Basic percent-encodes both halves before
joining with ':' to avoid ambiguity with secrets containing ':' or
non-ASCII bytes.
Callers now pass ~client_auth to exchange_code, refresh_token, Token.make
and Token.of_response. Groundwork for upcoming private_key_jwt and
client_secret_jwt variants (RFC 7523).