Manually draw and delete the image cache from the ImageView

This should resolve issue #32. I was building the image cache based on the first image in the view and then never rebuilding it. Rather than keep turning the cache on and off, we save some CPU cycles by manually building and then destroying the cache only when we need it.