Clear any ICC profile in the "destination" object when making a preview JPEG in process_scans. We want it to have a simple sRGB/sGrey profile instead of a wide-gamut one.
Properly handle 'extra' alpha channels in TIFF files. It turns out the SAMPLESPERPIXEL tag includes the number of EXTRASAMPLES, so subtract them to arrive at the number of channels we're interested in.
Update gitignore.
Add an option to always move originals.
Use the "low-level" libPNG interface to write each row instead of leaving it all for png_write_png at the end.
Use some C++11 features:
 - 'auto' type in many places
 - make_shared instead of new'ing an object inside a shared_ptr initialisation
 - range-based loops

This got rid of a lot of iterator mess and some use of ::ptr typedef's (still needed in function signatures).
Major change to the Image class - instead of always being a floating-point Lab image, each one can have its own pixel format (type) and ICC profile.
This is to allow process_scans to directly convert the file format without a conversion to Lab and back inbetween.
It simplifies the ImageFile readers and writers because they are no longer responsible for conversion. However, this also means there's nothing to do while the single-threaded format libraries read or write file data. The transform_queue class is no longer used so it's removed.
The Image class now performs colour space and/or pixel format transformations. It can either produce a new image or do so in-place.

Some things have been moved:
 - ImageFile::default_profile has been moved to the Image class.
 - ImageFile::get_and_embed_profile has been moved to the Destination class and simplified into get_profile.

ImageFile classes can modify provided pixel formats to be something they can save.
New cmsTypeError exception so ImageFile classes can throw errors when the passed pixel format is unacceptable.
ImageFile classes no longer use the mark_* and embed_icc virtual functions since get_and_embed_profile no longer calls them. This also means that they no longer store the library objects as an object variable.
Remember to call the LCMS2 error adaptor in process_scans.

Not sure what to do about dithering. Only the 'SOL' ImageFile class uses it now. Could it be better to implement it in the colour space/format transformation?