Fix lexer crash on many consecutive comments/newlines

Use scala.util.control.TailCalls to efficiently implement mutual
recursion between lexToken() and lexSymbol().