Fixing issue #60 - stack overflow due to infinite recursion in
hashCode/toString() on StringTree
Issue #61 - Added optional feature where unknown tags that do not begin
with underscores can be treated as custom tags instead of being
discarded.