Avatar and logo uploads fixed

Upload 500 errors are now resolved for avatars, branch logos, and organization logos.

Bug Fixes

Uploads were failing with 500 errors because the S3 driver wasn't normalizing file paths the same way as the Supabase Storage service. Both now use the same normalization (converting path separators like / to : in the object key), so avatar and logo uploads work reliably.