Lexer changes

Mostly minor things that rebasing is becoming painful.
After much searching: `container::str`.