Refactored decoder to pass header along

This allows for stricter validation of supported chunks and 
supposedly better extensibility
Added support for iTXt chunks
Added support for sRGB chunks
Added support for tEXt chunks
Added support for zTXt chunks
Added support for pays chunks
Fixed case clauses
Split Chunks module into Encoding, Decoding and Utils
Fixed silly ‘deflate is not decompress’ bug

My brain does not agree with those two
Extracted slow Mandelbrot test into an example