fix a setjmp() loop in pngread

see

https://github.com/jcupitt/libvips/issues/175

stupid setjmp()
support GRAY as an input and output ICC space

see

https://github.com/jcupitt/libvips/issues/176
oops, GRAY is an lcms2 feature
fix intro header list
Merge branch '7.40'