[trivial] Use a different token type for hex strings

Treating normal string literals and hex literals as the same token leads to a few of problems:
- `Token::toChars` prints them wrong
- [Bogus invalid utf errors](https://d.puremagic.com/issues/show_bug.cgi?id=10454)
- [Makes implicit conversion to `ubyte[]` impossible](https://d.puremagic.com/issues/show_bug.cgi?id=5909)

This only fixes the first problem, but it makes the information available to the parser to fix the others.