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
From the discussion on #106: 

> nodeType is now List[String]. You can leave it empty, but all the types we care about populate it
> with something like List("LogicalPlan", "Invoke", "Squashing"). The last element in nodeType 
> (aka simpleType) is expected to be descriptive, but not specific to a particular node.

> The label is now expected to contain only the specific content of the particular node, and no 
> indication of its type. For nodes that really have no content (such as the "sort" node that is that 
> parent of each key), the label is empty.

> When showing nodes as strings, you see the simple type, wrapping the label, or just the simple 
> type, if the label is empty. That seems to work pretty well, in most cases.