New image.py, added support for channels() to PG, Selector and all from GenericImage on

Agreed; this looks hacky to me.