Improved scanner. 

Infinite lookahead now possible, but finite control should be implemented for this language to make it not as slow.
Some lexeme names also come out wrong, and strings don’t scan quite right… so I’ll fix this tomorrow.