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.

@shane-tomlinson or @nchapman r?