new approach to tree rendering

@jdegoes I don't think this is _quite_ what you had in mind, but it lets you write `selector.showTree` with no further ado, and it will be easy to compose the `RenderedNode`s from different types.

See comments on the diff.
If you wanted to display these as children (I'm not sure if you do), you could create a NodeRenderer for a Tuple, which requires an implicit NodeRenderer for each of its arguments.