Improve parser error output down to statements
Improve parser error output down to statements

 * module parser now parses on last rootdefinition
   error instead of the failure to parse Eof
 * rootdefinition parser picks the error from the
   most successful sub parser
 * Statement parser checks the first token first
   so that after the first token, it either knows
   the node it wants to parse, or has a choice
   between vardef + expression

Trark/slp,Trark/slp,Trark/slp