feat: provision OAuth client for existing gardens on reconnect
When an existing garden reconnects with a public_key but has no
oauth_client_id, create a Boruta client and return the client_id.
This allows existing gardens to adopt private_key_jwt auth without
losing their identity.
sow-105
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>