Fix date-time and preview in Windows.

- Use QDateTime instead of localtime as a more portable way of measuring time.
  The DateTime and DateTimeOriginal tags are now correctly calculated in Windows.
- Fix DngFloatWriter so that if the JPEG conversion fails, the preview is not added to the output file.
- Record last save directory in QSettings, besides the last load directory.
- Update the README.md with the features of the new version.
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.