fix schema drift, unicode search, and error semantics
- schema.sql: avatar_cid → avatar_url to match production
- sanitize(): use unicode-aware \p{L}\p{N} instead of ASCII-only \w
- return 400 for empty query and limit>100 to match Bluesky's behavior
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>