Trees for backends

I think this is ready for merging now.  diagrams-svg and diagrams-cairo have both been ported to the new `renderData`/`RTree` interface.