add type information to RenderedTrees (Fixes #106)

use a single case class for RenderedTrees (but with alias constructors Terminal and NonTerminal)

nodeTypes for Workflow trees

nodeTypes for LogicalPlan (and annotated forms)

nodeType for None

nodeTypes for AST annotations

handle the umpteen AST node types in RenderTree instance
It seems like you are using the `nodeType` as a `label` in many cases. If this is true, perhaps `label` is merely a synonym for `nodeType.last`, where `nodeType` is a `NonEmptyList`? This way all nodes have a label which is always the most specific description of the node.