fix: close stream after ImageIO.read in APNGReader

NB: at least locally there were still some open files unclosed by the
ImageIO.read call.. but they must be internal to the ImageIO classes.
fix: getStream does not always log exceptions

getStream was almost always catching and logging an exception. It now
does a more thorough check to find the input stream if available, and
returns null if not, without throwing an exception (unless there is a
legitimate reason now).