C++11: Switched ParseNode to keep all data in an unrestricted union.
This saves us from having an extra UnicodeSet for ParseNodes which do
not represent character classes.