added caching, thumbnails, and filter persistence

a few bugs discovered immediately upon running filters against multiple
images