Move progress image assembly to DomainPlot

Previously, the mutable progress image was being shared between threads.
Introduce RenderingRecipient interface

This weakens the coupling between DomainPlot and DomainRenderer,
breaking their circular dependency.  It also allows DomainRenderers
to be used by other clients (such as image savers).  Note that some uses
will require changes to the sequence-number infrastructure.