[TAV-465] Refactor renderers and add list rendering.

Renderers now operate on outputs not just data. Rendering list outputs is moved
fully into the renderers and out of the helpers.
Factor out common list handling code for sharing.
WIP: rename renderers