start work on making task presenters configurable (as per #429)

this is not the implementation, but some preparatory work; the whole implementation will take a little while, and I'd prefer to offer pull requests for it in stages, of which this is the first