Implement standard OIDC claims support for the userinfo endpoint and
ID token. Claims are stored in the properties table and returned based
on the access token's granted scopes:
- profile scope: preferred_username (falls back to username), name,
given_name, family_name, nickname, picture, profile, website,
gender, birthdate, zoneinfo, locale, updated_at
- email scope: email, email_verified (with user record fallback)
Adds bulk property retrieval, shared gather_claims() function used by
both userinfo and build_id_token, and updated discovery metadata.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>