Use promises only as wrappers around asynchronous callbacks (exif reading, couchdb access, etc.).

This may not be the right way to do promises, either, but it seems more likely to work than the previous code....