about box: acknowledge json.org and JRE third party libraries
rewrote PNG writing code to fix error handling and symlinks

The original code just called the convenience wrapper
"ImageIO.write", but that does a bad job of reporting
file access errors, and does not work with symlinks
because it removes the target file first.

The new code uses the API one layer below that one,
which solves those file access problems.  It also is
the first step toward being able to write PNG comments.
move writeImageToPNGFile into new ImageFileUtil class
added code to write a dummy PNG comment
when writing PNG, store the JSON source in a compressed comment
specify UTF-8 for .ded files; handle non-ASCII in PNG comments

For reliable saving of diagrams that may contain non-ASCII
characters, specify the character encoding as UTF-8.

Additionally, transform any non-ASCII characters that might
otherwise be put into the PNG comment into JSON escape
sequences.
verify the PNG comment by reading it after it is written
read diagram JSON out of PNG comments if possible