Added support for NChannelImage and ExtendToNChannel


Sorry for all the previous open/close pull requests. This is the only merge to look at.

A hack indeed!

* ``get_current_generator`` only exists on ``Selector``.

* The ``generator`` parameter only exists on ``Translator`` and ``Sweeper`` (one of which should now be defunct!)

* There is one composite that isn't covered by this - what about ``SeparatedComposite``? Are we deprecating that  too? What about new composites potentially added in the future?

Composite patterns are pretty hacky in general imho.