Rename JPEGfile*.cc files.
Possible bug in writing ICC profiles larger than one APP2 marker (65519 bytes).
Possible bug in extracting tags from image files - we have to call readMetadata() first.
Move stuff that should be in header files into format-specific header files.
Rename some variables and use memcmp/memcpy instead of strncmp/strcpy.
Read EXIF/XMP/IPTC metadata from the JPEG app markers instead of using Exiv2's routines, which seperately open the file.
Convert the PNGreader callback 'pack' and functions into a class and move into separate file C++/header files.
Go back to using Exiv2's routines for pulling the metadata out of a JPEG file.

It's looking unfeasible to do our own metadata handling for every format.
Copy over improvements made in CPAG.

Have CMS::Format store whether the alpha has been pre-multiplied with the colour values.
Add methods to Image for un-pre-multiplying the alpha (and converting to floating point in the process) and later pre-multiplying for output.
Only attempt to save an ICC profile if the image has one.
Minor improvement to return logic.