Alternative PNG alpha-channel extraction

According to PNG spec filtering happens on a per-byte basis and uses
corresponding bytes from other pixels. This means that we don't have to actually
unfilter all the data. Instead it's possible to split pixel data into planes.

A few points to note:

* Filters are reused from original image
* Resulting opaque PNG uses the same filtered data
* Resulting mask PNG image uses the same filteres data
* Both resulting images are valid PNG images
* All the unfiltering masth is skipped which results in great boosts