Everything has a NodeRenderer now

I think this covers all the interesting cases, but there are a couple of remaining questions. See the comments.
Stuff like this you can replace with `NodeRenderer[Pipeline].render(pipeline)`, or if we decided to add some syntax, `pipeline.render`.