feat(user-profile): add avatar and banner support for user profiles master
Add comprehensive user profile customization including avatar and banner images, with full validation, PDS integration, and Jetstream event handling. ## User Profile Avatar/Banner Feature - Database migration 027: add display_name, bio, avatar_cid, banner_cid columns - POST /xrpc/social.coves.actor.updateProfile endpoint with blob upload - Size limits: avatar (1MB), banner (2MB); MIME validation (png/jpeg/webp) - Request body limit (10MB) and field length validation (64/256 chars) - Jetstream consumer handles app.bsky.actor.profile commit events - CID-to-URL transformation for profile images via PDS getBlob endpoint - UpdateProfileInput struct for type-safe partial updates - CHECK constraints in migration for display_name/bio lengths - Improved PDS error handling with pdsError type ## Testing - Repository tests: 8 new tests for UpdateProfile and queries - Service tests: 11 new tests for profile operations - Consumer tests: 20 new tests for Jetstream event handling - Handler tests: 27 new tests including validation edge cases - E2E integration tests: 4 new tests with real infrastructure Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>