Purify: remove lexer from Engine
Engine: Add step-by-step execution interface
Settings: add --stepwise flag
EngineTypes: split definition of step-by-step ENGINE
Interface/TableBackend: generate stepwise engine
Interface: Generate type for semantic values and non-terminals

Split interface into preInterface (before infer) and interface to add
type for nonterminals.
Add --typed-values flag in Settings to control generation of semantic
values.