Funnel parse methods through a single parse wrapper to simplify debugging.
fix typo and add error handling.
- derive lex.number and lex.stringliteral from lex.valued base class. Compute
  values of string and number literals.

- use a list instead of dictionary for all keywords and operators
  ("punctuation"): dictionary iteration order is unspecified, so ":" can be
  tried before ":=". In fact, in Python3 iteration order is different in
  differnt runs, so pasring became nondeterministic.
Funnel parse methods through a single parse wrapper to simplify debugging.
Use node.value for string literals.