New name is an I/O bound operation, use a queue to limit maximum concurrent operation
Limit concurrent command operation to 2
Take album name into photo name. Make photo name globally unique
1. Expose the function that generates page for photo as a single function.
2. Process photo: create folder -> shrink image -> get exif. Or
                  folder existed -> get exif
3. Expose photo info to album generator.
4. add url of previous/next photo to photo info.
Render album name/prev photo/next photo on photo page