C++11: It looks like we can use the default copy and move ctors and
assignment operators for ParseNode---they should set up the inner
anonymous union correctly (I think).
Adjustments to advance the iterator to sensible locations for error
reporting.
Must check for BAD tokens before checking for end of pattern, since we
might have run to the end of the pattern acquiring a BAD token.
Added tests for error messages due to various bad escapes.