feat: switch garden auth to private_key_jwt (no refresh tokens)
Replace client_credentials + refresh_token flow with client_credentials +
private_key_jwt. Gardens generate a 4096-bit RSA keypair and send the public
key during registration. Token acquisition uses RS512-signed JWT assertions.
No refresh tokens — gardens reauthenticate with fresh assertions when access
tokens expire. Fully RFC 6749 §4.4.3 compliant.
sow-105
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>