Replace DebugString with Describe

This change makes tree description completely open to mechanical
analysis and ensures consistency between description formats for each of
the iterator types.

Renamed StatsContainer.(Kind -> Type) for consistency.
Convert Type fields to use graph.Type

Add text encoding methods to replace string storage.
Merge pull request #152 from kortschak/describe

Replace DebugString with a well defined type returned by Describe
Ensure we don't examine empty token

Fixes issue #163.
Merge pull request #166 from kortschak/issue163

Ensure we don't examine empty token
Don't retain results where the value is empty

Empty quad terms are not valid, so we should be able to safely drop any
results where the value is "".
Merge pull request #167 from kortschak/issue165

Don't retain results where the value is empty
Merge branch 'master' into exceptop