Runtime performance imporovements

* the resized images are not pngs, but the same format as the original image. PNG photos can get quite heavy.
* check HTTP If-Modified-Since and return 304 if the person already has the image on his computer - we can avoid re-sending it every time. 
* the entire image is not loaded on every request anymore - if we have a cached version of the matching size, just render that, and don't touch the original PilImage