New PNG encoder that supports compression, more efficient vertical flipping, and minimal allocation when encoding multiple PNGs.

closes #2501