Added thumbnail processing, and memory caching.

One can specify background and foreground images which are fused with
the downloaded image.  This may come in handy, for example, while
displaying thumbnails of an album, where one would like those small
thumbnail images to be superimposed on a background image, or, while
displaying thumbnails for videos, where a play icon can be superimposed
on the downloaded image.

The second change allows one to optionally not use disk caching for
images, but instead store them in the memory. This may be useful in
situations where, you have large images in a complex tableview setup,
where storing images in the memory would make things faster. It also
features a memory cache dump, so that the app using it does not become
a memory hog, which can be triggered when required, in low-memory
situations.