- add LookaheadTableDepth() to disable FIRST-based optimization
- document that parser.result().pree.image() excludes outermost trim
- use DebugReject() to notify of rejection due to mustReachEnd
- use bitmask instead of a set for First
- add Optimize(false) interface to disable all performance optimizations
  that can be disabled; should there be separate speed/greed knobs?
- empty implicit trim nodes are not removed because(?) _trimming rules 
  (their parents) do not have commit flag set
- document that trimming rules are commited by default
- move src/example.cc elsewhere

postponed:
- checking for left recursion is expensive;
  do that for recursive rules only; identify those at compile time;
  on the other hand, the check is only expensive for rules that expand
  deeply and w/o progress; is that common?
- do not try *deeply* implicit rules which FIRST does not match current
  *non-empty* input; maybe later -- this requires successfully skipping
  rules (rather than rejecting them) and we have no means to do that
- use DebugReject() to notify of rejection due to mustReachEnd
- use bitmask instead of a set for First
- add Optimize(false) interface to disable all performance optimizations
  that can be disabled; should there be separate speed/greed knobs?
- add lookahead_r(rule) for zero-width lookahead; or should it be named
  zero_width_r() -- is there lookbehind? check perlre
