Bypass `has_key_for_signing_alg` gate for non-confidential clients
The interactive stage's token-endpoint gate tripped on
`CheckStatus::Skipped`, but the JWKS stage emits `Skipped` for
public, native, and loopback clients because the check is not
applicable: those clients use `token_endpoint_auth_method = none`
and never run `private_key_jwt`. The gate now consults
`metadata_facts.kind` and only fires for `WebConfidential`, so
public-client interactive runs proceed to the live flow instead of
being suppressed wholesale.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>