Fix IOError when saving progressive JPEGs.

when the jpeg encoder sees the flags optimize or progressive (or progression)
it will write the full image in one shot.

The bufsize needs to be big enough to hold the entire image. The current heuristic
is that the entire compressed image will fit in width * height bytes, but this
heuristic is only applied to save operations with the flag "optimize" and not to
save operations with the flag "progressive".

This patch fixes this oversight.

(Btw, it will probably be a good idea to have a loop that retries with a bigger
bufsize in case this guess is not big enough.)
fix Issue #312
improve palette handling while saving gif and png
Merge pull request #313 from e98cuenc/progressive

Fix IOError when saving progressive JPEGs.
Add history [ci skip]
reorganized gif optimize to work with palette parameter
replace custom search with dict in gif optimize
be more tolerant of tag read failures

this can occur if the MakerNote has a pointer to outside the EXIF block
Catch truncated zTXt errors.
Python3 fix.
issue warning instead of debug/print
adding prerequisites for tk to the readme
added raspian prereqs
Merge pull request #320 from ericbuehl/master

be more tolerant of tiff tag read failures
Merge pull request #321 from vytisb/master

Fix for #318: Catch truncated zTXt chunk errors when decoding PNG images.
Merge pull request #323 from wiredfool/tk-readme

Include tcl/tk in the readme
Add history [ci skip]
Add history [ci skip]
Merge pull request #315 from d-schmidt/master

fix Issue #312 + gif optimize improvement
Add history
Add respective paths for C_INCLUDE_PATH, LD_RUN_PATH (rpath) to build if specified as environment variables.