syntax: doc comments all the things
token: replace ast::Ident with just Ident
syntax: don't unescape LIT_CHAR/LIT_STR

This shuffles things around a bit so that LIT_CHAR and LIT_STR store an Ident
which is the original, unaltered literal in the source. When creating the AST,
unescape and postprocess them.

This changes how syntax extensions can work, slightly, but otherwise poses no
visible changes. To get a useful value out of LIT_CHAR/LIT_STR, call
`lexer::parse_char_lit` or `lexer::parse_str_lit`.

[breaking-change]