fix #338: allow lexer to start vars with '_'.

lexer was treating "_foo" as two separate tokens, but one salt transform
was creating a new function called "_main". this worked fine until it
was pretty printed and then parsed again.
I've changed the language lexers to support variables starting with '_'
and lowercase letters.