Support TransformerResult<void> in the consumer callback, which
allows generic code to more naturally use the Transformer interface
(instead of needing to specialize on void).
This also delete the specialization that existed within Transformer
itself, instead replacing it with an std::function adapter.
Why won't a simple specialization work?