Parallelized batch image manipulation

I'm sending two solutions. The first one in `app.py` is using one process per image, managed by a `multiprocessing.Pool`. The second one was an attempt to improve on this (in `app_nodaemon.py`) by further parallelizing the three cropping and saving tasks for each image. It took some dirty tricking of multiprocessing internals (which shouldn't be done because it leaves zombie processes behind if the main process doesn't terminate gracefully) and there is no statistically significant gain in performance (most likely because the main pool is already maxing all cores). All in all I prefer the cleanliness of the first solution, which is why it's the "official" submission.