Fix definition of lexical syntax for type variables.

Following discussions on mlton/polyml mailing lists with Andreas
Rossberg.
Fix lexer_fun$read_while utility to be linear time.

Also make the second argument more explicitly a list of chars rather
than a string (looking forward to EmitML handling).
Put a simple self-test into stringASTScript.sml
Parse case expressions.
Convert case-expressions to parsing ASTs (with tests)