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
After giving this some thought, I think a cleaner representation would be: `nodeType: NonEmptyList[String], label: Option[String]`

Making the type non-empty and the label explicitly optional would reflect the intention better. If you agree, I'd be happy to make the switch.