Fix tokenizer to handle < in tag names per HTML5 spec
Per WHATWG spec section 13.2.5.8 (Tag name state), when '<' is encountered
during tag name parsing, it should be appended to the current tag token's
tag name as part of "anything else" handling - not emit the current tag
and switch to tag open state.
This fixes 3 tree-construction test failures:
- <div<div> now correctly parses as element named "div<div"
- <p>Test</p<p>Test2</p> now correctly handles </p<p> as invalid end tag
- <option><XH<optgroup> now correctly parses XH<optgroup as element name
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>