png bug fixes and extensions.

Add a generic extract method for Tools to extract bytesdata
for any given permutation of channels.

Modify extract32 to be implemented in terms of this method.

Add support for 8bit grey/grey-alpha png's