Refactoring.

- Add an accept button to AboutDialog, and fix its size.
- Move some code from EditableMask to ImageStack to hide its image vector.
- Improve the Histrogram unit tests.
Refactor: Start moving pixel buffers to Array2D class.

- Create Array2D class, with a buffer of generic data, a width, a height and a displacement.
- Move BoxBlur outside EditableMask. It extends Array2D<float>, and blurs its own buffer.
- Move EditableMask outside of ImageStack, only an Array2D<uint8_t> remains. EditableMask now modifies this field of ImageStack.
  Thus, ImageStack does not depend on EditableMask anymore. GenerateMask and saveMaskFile are moved into ImageStack.
- PreviewWidget manages an EditableMask instance on the ImageStack object.
Add Array2D tests.
More refactoring, addapting classes to Array2D.

- Add move assignment/constructor to Array2D.
- ImageStack::compose() returns an Array2D<float>, and is used by DngFloatWriter::write.
- DngFloatWriter does not depend on ImageStack anymore.
- Renderer also receives an Array2D<float>.
- testBoxBlur outputs the blurred files to TEMPDIR.
Refactoring, reduce dependencies.

- Add an abstract method to EditableMask that checks if a layer is valid at a certain point.
- EditableMask does not depend on ImageStack anymore.
- ImageStack derives an inner class from EditableMask where isLayerValidAt calls back to the ImageStack instance.
- Simplify EditableMask and PreviewWidget with QRect and QPoint.
- Add the Array2D unit tests.
Refactoring, derive Image from Array2D<uint16_t>

- Derive Image from Array2D<uint16_t> and remove the redundant functionality.
- Adjust all the algorithms in Image to use the Array2D methods and fields.
- Derive SampleImage from Array2D<uint16_t> too, and adjust the tests that use it.
- Turn the MetaData constructor that uses a LibRaw instance into a method.
- metaData is now a field of Image, not a pointer to.
Open the load options dialog with the images passed as arguments.

- When images are passed as arguments, open the load options dialog with the list preloaded.
- Add the DngFloatWriter test.
- Fix the ImageStack test image_align.
Avoid copying preview from input images.

- Add class ExifTransfer to transfer the Exif information from the least exposed input image.
- Exclude all Exif tags that are known to Exiv2 to be the preview information.
Bugfixes
Refactor the input/output of images in ImageIO

- Create new class ImageIO with the load and save methods of ImageStack.
- It controls all the lifecycle of the ImageStack instance.
- MainWindow has an instance of ImageIO, PreviewWidget refers to its ImageStack.
Refactoring: Move LibRaw and MetaData code from Image to ImageIO.

- Move the code that loads a raw image from Image constructor to ImageIO::loadRawImage.
- This method also fills the MetaData fields.
- The constructor for Image takes a buffer with data and a MetaData object.
- Move the copy of Exif data from DngFloatWriter to ImageIO.
- Update all the affected unit tests.
Refactor: Add move semantics to Image.

- Add move asignment/constructor to Image, delete copy asignment/constructor.
- ImageStack's Image vector now contains Image instances instead of pointers.
- ImageIO::buildRawImage now returns an Image instance. In case of error, Image::good() returns false.
- MetaData compares the orientation to decide if the format matches.
- Update the unit tests.
Refactoring and render preview with LibRaw.

- Remove Renderer.
- Add a renderPreview method to ImageIO, which loads one of the input images again
  and substitutes the original raw data with the generated one.
- Rename MetaData as RawParameters.
- Protect ExifTransfer constructor with a try/catch block.
- Experimental: calculate a brightness for the preview.
- Use C++11 chrono instead of QDateTime in Log.
Fixed preview orientation in some cameras.

- Fix preview being oriented when rendered.
- Fix flip values for cameras that give the angle instead of a standard orientation value.
- Fix the proposed output name in the GUI.
- Fix the scaling of the thumbnail and preview with bilinear interpolation.
Improve preview brightness.

- Use LibRaw exposure correction to increase the brightness of the preview, up to 3 steps, preserving highlights.
- Change preview quality to 85 (could be even lower...)
Several bugfixes and performance improvements.

- Set jpeg subsampling to 2, 2 again, as it seems to be the correct value.
- Move opening files to ExifTransfer::copyMetadata, so that no copy is done if that fails.
- Prepare an empty raw buffer for the preview JPEG instead of unpacking a whole image. This may fail in the future...
- Set output params for the preview JPEG before calling LibRaw::open_file.
- Fix changing the edit tool with Ctrl/Shift so that it remembers the last tool in use.
- Change edit radius with the mouse wheel.
- Fix repainting edit brush after changing its radius.
Fix the preview size to its right value.
Output a DNG file with the same layout as the inputs.
Several fixes to support more cameras.

- Keep the original black and white levels in the output file. Some raw developers make assumptions
  about them instead of reading them from the DNG tags.
- Add the MaskedAreas or BlackLevels tags so that black levels are correctly calculated.
- Avoid the ColorMatrix1 tag if it has not a correct value, even if that breaks the DNG standard.
- Generate automatic white balance coefficients when they are not provided.
- Fix repainting affected area after undo/redo, by rotating it first to its correct position.
- For now, do not save the frame to the output DNG until RawTherapee's issue 2413 is fixed.
Update README, add features for v0.4.4