Stop avatar layout shift when images load

User avatars render square without shifting when the image loads — no more layout jank.

Bug Fixes

User avatars were rendered square or circular in the UI, but avatar derivatives were processed with aspect-ratio preservation. For non-square source images, this created derivatives that didn't match the UI frame — causing a layout shift when the image swapped from fallback to loaded.

Avatars are now square-cropped on upload, eliminating the aspect-ratio jank. Organization and branch logos continue to preserve their aspect ratio, since they're often wide-format and need that flexibility.