support binary, hex, and octal numeric literals; allow _ as a grouping character
add a bunch of additional lex token types