Plenty o' changes

`line` now correctly expects an EOL, or a function definition and an EOL

`lill_convert_tokens` should now correctly parse variables that don't
begin with letters keywords begin with.

`is_varname_letter` and `is_varname_legal` moved into their own
translation unit.

#8 applies