* Add support for writing tEXt chunks
* Add support for reading zTXt chunks
* Add check, if keyword is valid
* Add support for reading iTXt chunks
* Add support for writing iTXt chunks
* Remove Test Decode_TextEncodingSetToUnicode_TextIsReadWithCorrectEncoding: Assertion is wrong, the correct keyword name is "Software"
* Add support for writing zTXt chunk
* Add an encoder Option to enable compression when the string is larger than a given threshold
* Moved uncompressing text into separate method
* Remove textEncoding option from png decoder options: the encoding is determined by the specification: https://www.w3.org/TR/PNG/#11zTXt
* Removed invalid compressed zTXt chunk from test image
* Revert accidentally committed changes to Sandbox Program.cs
* Review adjustments
* Using 1024 bytes as a limit when to compress text as recommended by the spec
* Fix inconsistent line endings
* Trim leading and trailing whitespace on png keywords
* Move some metadata related tests into GifMetaDataTests.cs
* Add test case for gif with large text
* Gif text metadata is now a list of strings
* Encoder writes each comment as a separate block
* Adjustment of the Tests to the recent changes
* Move comments to GifMetadata
* Move Png TextData to format PngMetaData
* Remove multiple premultiplication.
* Use in DenseMatrix everywhere.
* Make private
* Dont convert vector row on first pass
* Remove incorrectly assigned alpha.
* Remove boxing.
* Use correct min row.
* Reorder parameters
* Correctly handle alpha component.
* Update tests
* Use dedicated methods over branching.
- `KnownXXX`. Any open-ended collection of algorithms e.g. `KnownQuantizers`, `KnownResamplers`
- `XXXMode`. Any closed operation enumeration e.g `AnchorPositionMode`, `FlipMode`
- `XXXType`. Any enumeration of a data type e.g `ExifDataType`.
refactor encoders to remove IImageFormat and split the logic across Encoders and Decoders.
remove IXXXOptions and moved setting onto encoders/decoders directly.
add out param on Image.Load APIs to output mime type of loaded image.