collectText

Recursively collect and concatenate all descendent TextNode in depth-first order