Engine: turn into step-by-step interpreter
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.
Expose new typedefs in backend-generated implementations
TableBackend: generate typed code
Introduce typed semantic values in engine

Expose definitions in generated interface and implementation.
Define semantic_value and Accept in TableFormat.
Generate entry points for stepwise engine.
Add --feed-nonterminal flag
Tweaking stepwise interface
Query: Add an interface to query information about automaton
Query: Expose internal representation of state as private type
Query: Grammar: expose forward reference graph
Query: WIP: make forward reference graph accessible to Query interface
Query: WIP: expose shifted state in Query interface