Make the image-swapping more fluid.

This approach caches the images so they aren't
re-requested.  It also defers the redrawing until
images have been downloaded in order to prevent
flickering.