fix(avatars): show a spinner icon when loading images with latency

This refactors the button progress indicator into something more generic
and uses that to implement progress indicators for profile image loading.

Fixes #1527.