Show a progress indicator in place of the spinner for image loading

As an added benefit, the downloaded data is cached, too.
Fix conflicts?