Cumulative to the last 0.17 release
* Removed deprecated `Info::encode` and `Encoder::set_srgb` methods.
* Improved the compression settings API for encoding.
* `Decoder` now requires a reader that implements `Seek` and `BufRead` traits.
* Bump bitflags dependency to 2.0.
* `StreamingDecoder::update` now takes a structured `UnfilterBuf` argument
instead of a direct reference to a vector. This allows in-place
decompression. There is a public constructor for `UnfilterBuf`.
* The methods `Decoder::output_buffer_size` and `output_line_size` now return
`Option<usize>` to reflect that these calculations no longer overflow on some
targets where the required buffers can not be represented in the address
space. They return the mathematically correct size where possible.
* Added `Reader::read_row` method.
* Add support for parsing eXIf chunk.
* Treat most auxiliary chunk errors as benign.
* Added `splat_interlaced_row`, which implements an alternative method for
merging Adam7 interlaced lines into the output buffer that is more suitable
for the presentation of progressive states of the buffer.
* Added `Adam7Variant` documenting the various methods for applying interlaced
rows and to prepare an API to progressively read frames through `Decoder`.
* The decoding of Adam7 interlaced data is now much faster.
* The `acTL` chunk is now ignored when it is invalid, instead of producing
errors while reading or decoding the following APNG chunks.
* The requirement of the `fcTL` chunk for the default image to match the IHDR's
indicate image size is now enforced.
* More minor format errors in auxiliary chunks are now ignored by the decoder,
instead disregarding the malformed chunk.
* Adam7 Interlacing on 32-bit targets now handles some cases correctly that
previously wrote some bytes to the wrong pixel indices due to overflows.