Issues #28,#37; introducing PhotoCache class

We still need to modify the DrawableListener to discriminate between full size
and thumbnail versions, since thumbnails are currently being displayed as fullsize
images in some circumstances.